Hi,
I want to restore my production backup(DB-name:ECP & Instance:30) on a test machine on which an SAP server already running (DB-name: ECQ & Instance: 20)
Both the system are running ECC 6 EHP5 on AIX6.1 and DB2 9.7
I tried to perform redirect restore with following steps:
1) Take offline backup of ECP
2) Generated restore redirect script on source (ECP)
db2 RESTORE db ECP from /db2/backup taken at 20130113150420 REDIRECT GENERATE SCRIPT /db2/backup/ECPrestore.clp
PFA the script.
3) Copied offline backup of ECP and the generated script file on test server.
4) Edited the script file by replacing ECP(source db) with ECQ(target db) and run the script:
db2 -tvf /db2/backup/ECPrestore.clp
Please note that I was unable to start with original script file(even after changing DB names). Therefore made changes and finally executed folllowing script(ECPrestore2.clp):
RESTORE DATABASE ECP
FROM '/db2/backup'
TAKEN AT 20130113150420
ON '/db2/ECQ/sapdata1'
, '/db2/ECQ/sapdata2'
, '/db2/ECQ/sapdata3'
, '/db2/ECQ/sapdata4'
-- DBPATH ON '/db2/ECQ'
INTO ECQ
--NEWLOGPATH '/db2/ECP/log_dir/NODE0000'
WITH 1 BUFFERS
BUFFER 1024
REPLACE HISTORY FILE
REPLACE EXISTING
REDIRECT
PARALLELISM 1
WITHOUT ROLLING FORWARD
WITHOUT PROMPTING
;
Hereafter I got following message:
Now I am unable to proceed further. I tried to run:
db2 restore db ECP continue
But it gave me following error.
While surfing I came to know that we tablespace containers has to be set. But as depicted in my original script file all my tablespace (in source DB) are configured with automatic storage, so not required to set them again.
But still I tried testing to set one of the tablespace, which is giving me following error:
Also my cfg parameter show Restore in pending state:
Please suggest me how to complete my restore activity.
Regards,
Krishan
Request clarification before answering.
Hi Experts,
Please help me to resolve the error.
Joachim, following is the details regarding DB2 version. Please suggest further.
3CECDEV:db2ecq 5> db2level
DB21085I Instance "db2ecq" uses "64" bits and DB2 code release "SQL09073" with
level identifier "08040107".
Informational tokens are "DB2 v9.7.0.3", "special_25542", "IP23092_25542", and
Fix Pack "3".
Regards,
Krishan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Krishan,
As Frank suggested you have to set "db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON",
either explicit as described above or implicit with "db2set DB2_WORKLOAD=SAP"
You can check the setting with : db2set -all | grep -i db2_restore_grant
Starting DB2 V9.7, SYSADM no longer has implicit DBADM Privileges due to a change in security policies,
common SQL errors received are SQL0551N, SQL0552N or SQL3020N
Explicitly granting the DBADM authority to the user or group should resolve the issue.
However, in DB2 V9.7, only the SECADM user can grant the DBADM authority to a user or group.
Querying the SYSCAT.DBAUTH table can be used to determine which user has DBADM authority:
db2 " SELECT DISTINCT GRANTEETYPE, GRANTEE, DBADMAUTH from SYSCAT.DBAUTH"
If the user exists on the server, have the user grant the DBADM authority to the instance owner.
If not determine which user has SECADM authority by issuing the following command:
db2 " SELECT DISTINCT GRANTEETYPE, GRANTEE, SECURITYADMAUTH from SYSCAT.DBAUTH"
Then grant the DBADM authority to the instance owner using the following command:
db2 "GRANT DBADM ON DATABASE TO USER <USERID>"
If the restore is on a different server where there are no DBADM or SECADM then starting DB2 V9.7 FP2 you can set the DB2_RESTORE_GRANT_ADMIN_AUTHORITIES registry variable BEFORE preforming the restore into a new database.
Example:
db2stop
db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON
db2set -all | grep -i db2_restore_grant
[i] DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON
db2start
With 9.7 FP2, they introduced a registry variable called DB2_RESTORE_GRANT_ADMIN_AUTHORITY.
This is handy if you are restoring a backup from one instance to another,
as it automatically grants instance owner SECADM, DBADM, DATAACCESS, and ACCESSCTRL on the databases restored.
With 9.7 FP5, the setting is dynamic and does not require bouncing of the instance.
Best regards
Joachim
Hi Joachim/Frank,
I executed following commands:
3CECQAS:db2ecq 33> db2 " SELECT DISTINCT GRANTEETYPE, GRANTEE, SECURITYADMAUTH from SYSCAT.DBAUTH"
GRANTEETYPE GRANTEE SECURITYADMAUTH
------------------------------------------------
U DB2ECP N
U ECPADM N
U SAPECP N
U DB2ECP Y
3CECQAS:db2ecq 32> db2 " SELECT DISTINCT GRANTEETYPE, GRANTEE, DBADMAUTH from SYSCAT.DBAUTH"
GRANTEETYPE GRANTEE DBADMAUTH
----------- ------------------------
U DB2ECP N
U SAPECP N
U DB2ECP Y
U ECPADM Y
Therafter, I have created new user "db2ecp" (SAPSID of source system) on my target system. Also maintained this user in same group as that of db2ecq(SAPSID of target system).
# su - db2ecp
$ cd /db2/db2ecq/sqllib/bin
$ db2 connect to ECQ
$ db2 "grant SECADM on database to user db2ecq"
DB20000I The SQL command completed successfully.
$ db2 "grant DBADM on database to user db2ecq"
DB20000I The SQL command completed successfully.
And also successfully executed following:
3CECQAS:db2ecq 12> db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON
Now when I try startsap:
3CECQAS:ecqadm 4> startsap
Checking db6 Database
Database is not available via R3trans
-------------------------------------------
02/02/2013 11:32:25 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
Database activated
R3trans connect failed
DB startup failed
please send the tracefile /home/ecqadm/startsap.trc to support.
Following is the error message within db2diag.log (PFA db2diag.log file):
| 2013-02-02-11.23.50.378358+330 E13170A1217 | LEVEL: Error (OS) | ||
| PID | : 11403510 | TID : 258 | PROC : db2sysc 0 |
| INSTANCE: db2ecq | NODE : 000 | ||
| EDUID : 258 | EDUNAME: db2sysc 0 |
FUNCTION: DB2 UDB, oper system services, sqloAIXLoadModuleTryShr, probe:130
CALLED : OS, -, dlopen
OSERR : ENOEXEC (8) "Exec format error"
MESSAGE : Attempt to load specified library failed.
DATA #1 : Library name or path, 37 bytes
/db2/db2ecq/sqllib/lib64/libdb2iocp.a
DATA #2 : shared library load flags, PD_TYPE_LOAD_FLAGS, 4 bytes
2
DATA #3 : String, 621 bytes
0509-130 Symbol resolution failed for /db2/db2ecq/sqllib/lib64/libdb2iocp.a because:
0509-136 Symbol CreateIoCompletionPort (number 0) is not exported from
| dependent module /unix. |
0509-136 Symbol GetQueuedCompletionStatus (number 1) is not exported from
| dependent module /unix. |
0509-136 Symbol GetMultipleCompletionStatus (number 2) is not exported from
| dependent module /unix. |
0509-022 Cannot load module /db2/db2ecq/sqllib/lib64/libdb2iocp.a.
0509-026 System error: Cannot run a file that does not have a valid format.
0509-192 Examine .loader section symbols with the
| 'dump -Tv' command. | |||
| 2013-02-02-11.23.50.379094+330 E14388A910 | LEVEL: Error (OS) | ||
| PID | : 11403510 | TID : 258 | PROC : db2sysc 0 |
| INSTANCE: db2ecq | NODE : 000 | ||
| EDUID : 258 | EDUNAME: db2sysc 0 |
FUNCTION: DB2 UDB, oper system services, sqloAIXLoadModuleTryShr, probe:140
CALLED : OS, -, dlopen
OSERR : ENOEXEC (8) "Exec format error"
MESSAGE : Attempt to load specified library augmented with object name failed.
DATA #1 : Library name or path, 47 bytes
/db2/db2ecq/sqllib/lib64/libdb2iocp.a(shr_64.o)
DATA #2 : shared library load flags, PD_TYPE_LOAD_FLAGS, 4 bytes
262146
DATA #3 : String, 272 bytes
0509-022 Cannot load module /db2/db2ecq/sqllib/lib64/libdb2iocp.a(shr_64.o).
0509-153 File /db2/db2ecq/sqllib/lib64/libdb2iocp.a is not an archive or
| the file could not be read properly. |
0509-026 System error: Cannot run a file that does not have a valid format.
| 2013-02-02-11.23.50.379396+330 I15299A565 | LEVEL: Severe | ||
| PID | : 11403510 | TID : 258 | PROC : db2sysc 0 |
| INSTANCE: db2ecq | NODE : 000 | ||
| EDUID : 258 | EDUNAME: db2sysc 0 |
FUNCTION: DB2 UDB, oper system services, sqloLioInitIocp, probe:200
CALLED : DB2 UDB, oper system services, sqloLoadModule
RETCODE : ZRC=0x870F009B=-2029059941=SQLO_MOD_LOAD_FAILED
| "Dynamic library load failed." |
DATA #1 : Library name or path, 12 bytes
libdb2iocp.a
DATA #2 : Library Search Path, 24 bytes
/db2/db2ecq/sqllib/lib64
Regards,
Krishan
Hi Krishan,
Enter the lsdev command to check whether the status of the IOCP port is Available.
$ lsdev -Cc iocp
The resulting output should match the following example:
iocp0 Available I/O Completion Ports
If the IOCP port status is Defined, change the status to Available.
Log in to the server as root and issue the following command:
# smitty iocp
Select Change / Show Characteristics of I/O Completion Ports. Change the configured state at system restart from Defined to Available. Enter the lsdev command again to confirm that the status of the IOCP port has changed to Available.
Best regards
Joachim
Hi Experts,
Please provide your expert advice to help resolve the issue.
Regards,
Krishan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
It experts seems busy of giving any solution....
Well I have completed my db restore from ECP to ECQ successfully.
But now I am facing problem in starting of SAP. I am able to start db2 / activate db2 explicitly at OS level through user db2ecq. But when I run startsap it throws following error:
3CECQAS:ecqadm 17> startsap
Checking db6 Database
Database is not available via R3trans
-------------------------------------------
01/29/2013 13:00:06 0 0 SQL1026N The database manager is already active.
SQL1026N The database manager is already active.
Activate database failed
R3trans connect failed
DB startup failed
please send the tracefile /home/ecqadm/startsap.trc to support
The startsap.trc is giving following logs: (PFA complete startsp.trc file)
Database is not available via R3trans
DB_RUNNING=0
JDB_RUNNING=
}13:00:04 ## set_db_running() done: 0
The db2diag.log files showing following entries:
| 2013-01-29-13.07.56.561840+330 E1359948A591 | LEVEL: Error | ||
| PID | : 9633906 | TID : 1289 | PROC : db2acd 0 |
| INSTANCE: db2ecq | NODE : 000 |
APPID : *LOCAL.db2ecq.130129073759
| EDUID : 1289 | EDUNAME: db2acd 0 |
FUNCTION: DB2 UDB, Administrative Task Scheduler, AtsDbInfo::cleanupStaleEntries, probe:400
MESSAGE : ZRC=0xFFFFFDD9=-551
DATA #1 : <preformatted>
[IBM][CLI Driver][DB2/AIX64] SQL0551N "DB2ECQ" does not have the required authorization or privilege to perform operation "UPDATE" on object "SYSTOOLS.ADMINTASKSTATUS". SQLSTATE=42501
While executing R3trans -d, trans.log shows following errors:
31 2.246019
4 ETW000 [ dev trc,00000] Database collating sequence is ok. 6946 2.252965
4 ETW000 [ dev trc,00000] *** ERROR in ExecuteDirect[dbdb6.c, 6583] CON = 0 (BEGIN) 75892 2.328857
4 ETW000 [ dev trc,00000] &+ DbSlConnectDB6( SQLExecDirect 😞 [IBM][CLI Driver][DB2/AIX64] SQL0551N "SAPECQ" does not have the required author
4 ETW000 60 2.328917
4 ETW000 [ dev trc,00000] &+ ization or privilege to perform operation "DROP VIEW" on object "SAPTOOLS.DB2_WORKLOAD_CHECK". SQLSTATE=42501
4 ETW000 43 2.328960
4 ETW000 [ dev trc,00000] &+
4 ETW000 55 2.329015
4 ETW000 [ dev trc,00000] &+ DROP VIEW SAPTOOLS.DB2_WORKLOAD_CHECK
4 ETW000 42 2.329057
4 ETW000 [ dev trc,00000] &+
4 ETW000 42 2.329099
4 ETW000 [ dev trc,00000] &+
4 ETW000 41 2.329140
4 ETW000 [ dev trc,00000] *** ERROR in ExecuteDirect[dbdb6.c, 6583] (END) 30 2.329170
4 ETW000 [ dev trc,00000] On MCOD systems please "GRANT DROPIN ON SCHEMA SAPTOOLS TO USER SAPECQ " .
4 ETW000 50 2.329220
4 ETW000 [ dev trc,00000] DB2_WORKLOAD=SAP is set in DB2 registry as required. 548 2.329768
4 ETW000 [ dev trc,00000] CLI Insert Buffering is disabled on single partition databases. 562 2.330330
4 ETW000 [ dev trc,00000] INFO: Unable to determine SAPDBHOST; defaulting to 'UNKNOWN' 113 2.330443
4 ETW000 [ dev trc,00000] Connection 0 opened (DBSL handle 0) 32 2.330475
4 ETW000 [ dev trc,00000] INFO: Unable to determine SAPDBHOST; defaulting to 'UNKNOWN' 6946 2.337421
4 ETW000 [ dev trc,00000] *** ERROR in prepareStatement[dbdb6.c, 14712] CON = 0 (BEGIN) 915 2.338336
4 ETW000 [ dev trc,00000] &+ DbSlReadDB6( SQLExtendedPrepare 😞 [IBM][CLI Driver][DB2/AIX64] SQL0204N "SAPECQ.SVERS" is an undefined name. SQ
4 ETW000
Please suggest.
Regards,
Krishan
Hi Frank,
While executing the given command following error is generated:
3CECQAS:db2ecq 89> db2 " drop view SAPTOOLS.DB2_WORKLOAD_CHECK "
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0551N "DB2ECQ" does not have the required authorization or privilege to
perform operation "DROP VIEW" on object "SAPTOOLS.DB2_WORKLOAD_CHECK".
SQLSTATE=42501
I tried running the same with user "ecpadm" but same error message. Please suggest.
Regards,
Krishan
Hi Krishan,
this is odd. After a redirected restore the new DB2 instance owner should have DBADM, SYSADM autority and should be able to drop the view. Did you set DB2_WORKLOAD=SAP before doing the restore?
DB2_WORKLOAD=SAP includes the setting DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON.
Starting in Version 9.7 Fix Pack 5, if DB2_RESTORE_GRANT_ADMIN_AUTHORITIES is set to ON and you are restoring to an existing database, then SECADM and DBADM authorities are granted to the user that issues the restore operation.
If this is not the case, you may need a SECADM user to grant DBADM, SYSADM, SECADM to your new instance owner. This may require that you create an OS user with the name of the old DB2 instance owner on your target system, connect to the restored database as old instance owner and GRANT the autorities to the new instance owner.
Regards
Frank
Hi,
PFA the script file which I am executing but its show me following message:
3CECQAS:db2ecq 3> db2 -tvf /db2/backup/ECPrestore11.clp
DB21007E End of file reached while reading the command.
I have attached the file here. Please check, if any changes are to be done.
Also I have one query:
Since my all tablespaces are having "Using Automatic Storage=YES" in source db (ECP), so there is no need for executing SET TABLESPACES CONTAINER command (also in the generated script this file does not contain this command).
Regards,
KRishan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Krishan,
for the first time delete the "end;"
-- *****************************************************************************
-- *****************************************************************************
-- ** start redirected restore
-- *****************************************************************************
RESTORE DATABASE ECP CONTINUE;
end;
-- *****************************************************************************
-- ** end of file
-- *****************************************************************************
DB21007E End of file reached while reading the command.
Explanation:
The last command was not executed because end of file was reached.
Terminate the last command with a ';' (or your defined termination
character) if the -t option was used. Remove the '\' from the last line
in the command if the +t option was used.
User response:
Correct the error and resubmit the command.
best regards
Joachim
Hi Joachim,
Yup, I have deleted "end;" (which I have put as for testing, since the execution of original script was giving me same error message).
Now executing new edited script :ECPrestore12.clp (PFA the script file), gives following message again:
3CECQAS:db2ecq 7> db2 -tvf /db2/backup/ECPrestore12.clp
DB21007E End of file reached while reading the command.
If I execute following then it gives:
3CECQAS:db2ecq 8> db2 +tvf /db2/backup/ECPrestore12.clp
SQL1119N A connection to or activation of database "ECQ" cannot be made
because a previous restore is incomplete or still in progress. SQLSTATE=57019
As per my understanding (please suggest if its wrong) only following commands are being executed in the given script (all others are commented):
UPDATE COMMAND OPTIONS USING S ON Z ON ECP_NODE0000.out V ON;
SET CLIENT ATTACH_DBPARTITIONNUM 0;
SET CLIENT CONNECT_DBPARTITIONNUM 0;
RESTORE DATABASE ECP
FROM '/db2/backup'
TAKEN AT 20130113150420
ON '/db2/ECQ/sapdata1'
, '/db2/ECQ/sapdata2'
, '/db2/ECQ/sapdata3'
, '/db2/ECQ/sapdata4'
INTO ECP
WITH 2 BUFFERS
BUFFER 1024
REDIRECT
PARALLELISM 1
WITHOUT ROLLING FORWARD
WITHOUT PROMPTING
;
RESTORE DATABASE ECP CONTINUE;
Also please suggest if I interpret your following statement rightly or not:
"Terminate the last command with a ';' (or your defined termination
character) if the -t option was used. "
With this I interpret that I need to remove all ; (semicolons) in the script and it should be put only once in the entire script, that is at the end of last executing command, which is-
RESTORE DATABASE ECP CONTINUE;
Regards,
Krishan
Hi Krishna,
Follow the below step db2 redirect restore activity.
1). Perform full offline or online backup of source system
2). Go to cd /sapmnt/SSID/exe and run the below script
brdb6brt -bm RETRIEVE -es –replace SourceSID=TargetSID,db2SourceSID=db2TargetSID,/db2/SourceSID=/db2/TargetSID
3). Above Generate the script copy the Target System.
4). Offline PRD (Target System) Backup Images copy to Source Path (Any One Path)
5). Stop SAP System only DB2 must be Started.
6). Start the db2 backup redirect restored in Quality System
7). before run the script below activity must be finished.
Make Changes to the restore script
Go to script path
1). Replace Source SID (XXX) with Target SID (XXX)
2). Change the backup location
3). User (source db2sid) USING (Source db2sid Password)
USER db2xxx USING XXX(Password)
8). Restoring Database
Log in db2sid (db2sid) User
Go to backup & script Path
9). Run the below Script
db2 -tvf <script.scr> for exp. db2 -tvf xxx_NODE0000.scr
After successfully restore backup below command run
10). First Check Roll Forward Status
Open DB with the below command
db2 rollforward db <TargetSID> query status – check status of DB
db2 rollforward db <TargetSID> complete
11). Once the copy is complete we can check below parameter and make corrections as per your preprocessing
Db2 list tablespaces show detail (To check tablespaces)
parameter automatic storage & re-sized YES
Check the Archive log (LOGARCHMATH1) path
Log in db2sid & run the below command for change the db2 LOGARCHMATH1 Parameter value.
After successfully change the parameter restart the db2 database
12). Perform below step before the Start SAP System
13). Create SAP connects user using
PATH :- /usr/sap/SID/SYS/global
scdb6up create <connect user password> <sidadm password>
above command will update entry in /sapmnt/SID/global/dscdb6.conf
Change the dbs_db6_schema Environment Variable.
Regards,
Varenyam Trivedi
Hi Varenyam,
Thanks for the steps.
But currently I'm in middle to redirect restore. I followed these steps:
1) Take offline backup of ECP
2) Generated restore redirect script on source (ECP)
db2 RESTORE db ECP from /db2/backup taken at 20130113150420 REDIRECT GENERATE SCRIPT /db2/backup/ECPrestore.clp
3) Copied offline backup of ECP and the generated script file on test server.
4) Edited the script file by replacing ECP(source db) with ECQ(target db) and run the script:
db2 -tvf /db2/backup/ECPrestore.clp
Please note that I was unable to execute from the originally generated script, so I edited the file, and finally executed following script:
RESTORE DATABASE ECP
FROM '/db2/backup'
TAKEN AT 20130113150420
ON '/db2/ECQ/sapdata1'
, '/db2/ECQ/sapdata2'
, '/db2/ECQ/sapdata3'
, '/db2/ECQ/sapdata4'
-- DBPATH ON '/db2/ECQ'
INTO ECQ
--NEWLOGPATH '/db2/ECP/log_dir/NODE0000'
WITH 1 BUFFERS
BUFFER 1024
REPLACE HISTORY FILE
REPLACE EXISTING
REDIRECT
PARALLELISM 1
WITHOUT ROLLING FORWARD
WITHOUT PROMPTING
;
Hereafter, I got following message:
SQL1277W A redirected restore operation is being performed. Table configuration can now be viewed and table spaces that do not use autostorage can have their containers reconfigured.
DB20000I The RESTORE DATABASE command completed successfully.
(please note that all my table space both in ECP(source) and ECQ(target) server is automatic.)
Now please let me know, how to proceed further.
Please note that my db conifg parameter shows "Restore Pending = Yes"
Also please note that the session through which I have executed the script is no closed.
Please suggest in this situation how can I proceed further.
Regards,
Krishan
Hi Krishna,
After Restoration is over we have to do ROLL-FORWARD, otherwise it will give error : A Connection to or activation of database “<sid> can not be made because of ”ROLL-FORWARD is Pending.
To do ROLL-FORWARD command is “ROLLFORWARD DATABASE <sid> COMPLETE”
After Roll-Forward finish successfully Backup Restoration is over.
Regards,
Varenyam Trivedi
Hi Varenyam,
I am getting following error for ROLLFORWARD command for ECQ (target SID):
3CECQAS:db2ecq 21> db2 ROLLFORWARD DATABASE ECQ COMPLETE
SQL1119N A connection to or activation of database "ECQ" cannot be made
because a previous restore is incomplete or still in progress. SQLSTATE=57019
Regards,
Krishan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
1. you have to submit the "db2 restore db ECP continue" command in the same session where you have started the redirected restore (where you have submitted db2 -tvf /db2/backup/ECPrestore2.clp)
2. maybe it is just a typo, but in the script of your first posting you have
--NEWLOGPATH '/db2/ECP/log_dir/NODE0000'
this should be the path to the log files of ECQ. ==> --NEWLOGPATH '/db2/ECQ/log_dir/NODE0000'
Regards,
Roland
Hi Roland,
Thanx for instant reply.
1. M using putty and unfortunately lost connection in which I executed the script.
Now I have started new putty session and tried running this command but its gives following message:
3CECQAS:db2ecq 13> db2 restore db ECP continue
DB21080E No previous RESTORE DATABASE command with REDIRECT option was issued
for this database alias, or the information about that command is lost.
2. Sorry for the typo, agreed that it should be:
--NEWLOGPATH '/db2/ECQ/log_dir/NODE000
But I think this command is commented and its not executed when I run the script.
(I deliberately commented this because I was getting an error for this command, so i commented it. And the script successfully executed with following message.
)
Please suggest.
Regards,
Krishan
| User | Count |
|---|---|
| 5 | |
| 5 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.