In this Document
| Goal | 
| Solution | 
| Installing New RCU Schemas In The New Oracle Database | 
| Cloning The Database Where The Original RCU Schemas Are Held To Move Them To A New Oracle Database | 
| References | 
APPLIES TO:
Business Intelligence Suite Enterprise Edition - Version 12.2.1.2.0 and laterBusiness Intelligence Server Enterprise Edition - Version 12.2.1.0.0 and later
Information in this document applies to any platform.
GOAL
You have installed OBIEE 12c.
The RCU database is required to move from one host to another and the hostname of the database has changed.
This document describes the steps to reconfigure your OBIEE-to-RCU database connections in this situation.
The examples provided are for an Oracle database.
The document details two possible alternative ways to accomplish the task:
- New RCU schemas are installed in the new target Oracle database.
In this case, the security store needs to be migrated or re-associated from the source Oracle database to the new target Oracle database where the RCU schemas are to be installed. This is needed because the newly created OPSS schema contains no security store.
OR
- The database where the RCU schemas are hold is moved or "cloned" using some cloning Oracle DBA utility and imported into the new target Oracle database.
In this case, the security store residing in the source Oracle database within the OPSS RCU schema is moved as result of the database cloning process. No additional steps are required regarding the security store beyond what is done by the Oracle database cloning utility.
- New RCU schemas are installed in the new target Oracle database.
In this case, the security store needs to be migrated or re-associated from the source Oracle database to the new target Oracle database where the RCU schemas are to be installed. This is needed because the newly created OPSS schema contains no security store.
OR
- The database where the RCU schemas are hold is moved or "cloned" using some cloning Oracle DBA utility and imported into the new target Oracle database.
In this case, the security store residing in the source Oracle database within the OPSS RCU schema is moved as result of the database cloning process. No additional steps are required regarding the security store beyond what is done by the Oracle database cloning utility.
Note:
Ensure you have a cold backup of your entire installation.
Ensure you backup any file before modifying.
Ensure you have a cold backup of your entire installation.
Ensure you backup any file before modifying.
SOLUTION
Installing New RCU Schemas In The New Oracle Database
- Create new RCU schemas in the new Oracle database. You can use the same schema prefix that you used for the original schemas or a new prefix. In this example, the schema prefix used is "BIEE". Run the RCU utility to create the new schemas:cd [DOMAIN_HOME]/oracle_common/bin
 ./rcu
 In the RCU schema selection screen, check "Oracle Business Intelligence" check box (BIEE_BIPLATFORM) to create the OBIEE schemas. The following schemas are created:BIEE_STB
 BIEE_OPSS
 BIEE_IAU
 BIEE_IAU_APPEND
 BIEE_IAU_VIEWER
 BIEE_BIPLATFORM
 BIEE_MDS
 BIEE_WLS
- Create a data source in the Weblogic console to support the reassociatesecuritystore WLST command.
 The reassociatesecuritystore command connects to the old database using the original data source for OPSS in Weblogic and gets the security store data. That data is transferred to the new database by connecting through this new connection. This is all done in the same step by the reassociatesecuritystore command.
 Follow these steps to create the connection:
 - Log in to the Weblogic console.
 - Click on Lock and Edit
 - Navigate to Services -> Data Sources
 - Click on New -> Generic Data Source. Provide:
 Name: opss-data-source_NEW
 JNDI Name: jdbc/OpssDataSource_NEW
 - Click on Next
 - Click on Next again
 - Click on Next again
 - Provide:
 Database Name: your NEW database SID
 Hostname: your new database hostname
 Port: your new database listener port
 Database User Name: the <prefix>_OPSS schema in the new database. Example: BIEE_OPSS
 Password: the password you specified for the <prefix>_OPSS schema in the new database
 - Click on Next
 - Click on Test Configuration. You should get a 'Connection test succeeded." message at the top of the screen.
 - Click on Next
 - Check both "AdminServer" and bi_cluster check boxes
 - Click on Finish
 - Click on opss-data-source_NEW link to edit the new connection
 - Click on Connection Pool sub tab under Configuration tab
 - Click on Advanced
 - Update the following parameters:
 Initial Capacity: 0
 Minimum Capacity: 0
 Test Frequency: 300
 Connection Creation Retry Frequency: 10
 - Click on Save
 - Click on Activate Changes
- Re-associate the security store to the new database.
 a) You need to get the "datasourcename" parameter for the new OPSS data source that you created. That is NOT the name you see in the Weblogic console.
 The data source name for the command is actually the JNDI name you provided when you created the connection. You can find in the configuration file for the connection.
 Open a shell session to the server and run:cd [DOMAIN_HOME]/config/jdbc
 more opss-datasource-jdbc-xxx.xml ---> This is the configuration file of the new connection you created in the Weblogic console
 The name you need is in tag:<jndi-name>jdbc/OpssDataSource_NEW</jndi-name>
 So, "OpssDataSource_NEW" is the datasourcename that you need to use in the command.
 b) You need to enable runtime MBeans to run the reassociatesecuirtystore command:cd [DOMAIN_NAME]/oracle_common/common/bin
 ./wlst.sh|.cmd
 connect('weblogic','Admin123','t3://localhost:7001')
 edit()
 startEdit()
 cd('JMX/bi')
 cmo.setDomainRuntimeMBeanServerEnabled(1) --> This command may appear to fail or return an error but it actually enables the MBean as needed.
 activate()
 disconnect()
 exit()
 c) Run the reassociatesecuritystore command. These are the parameters of the command that re-associates the security store:
 - domain: this is your domain name. You can get it from the directory name under user_projects
 - servertype: use this value: DB_ORACLE
 - datasourcename: JNDI name you get in previous step
 - jpsroot: use this value: cn=jpsRoot
 - jdbcurl: use this format: jdbc:oracle:thin:@localhost:1521/PDBORCLNEW
 - jdbcdriver: use this driver: oracle.jdbc.OracleDS for 12.2.1.2 and lower versions. Use jdbcdriver=oracle.jdbc.OracleDriver for 12.2.1.3 and higher versions.
 - dbUser: the database <prefix_OPSS user in the new database. Example: BIEE_OPSS
 - dbPassword: <prefix>_OPSS user password
 Example commands and output:./wlst.sh|.cmd
 connect('weblogic','Admin123','t3://localhost:7001')
 reassociateSecurityStore(domain="bi",servertype="DB_ORACLE",datasourcename="jdbc/OpssDataSource_NEW",jpsroot="cn=jpsRoot",jdbcurl="jdbc:oracle:thin:@localhost:1521/PDBORCLNEW",jdbcdriver="oracle.jdbc.OracleDriver",dbUser="BIEE_OPSS",dbPassword="Admin123")
 Already in Domain Runtime Tree
 Starting policy store reassociation.
 The store and ServiceConfigurator setup done.
 Schema is seeded into the store
 Data is migrated to the store. Check logs for any failures or warnings during migration.
 Data in the store after migration has been tested to be available
 Update of in-memory jps configuration is done
 Policy store reassociation done.
 Starting credential store reassociation
 The store and ServiceConfigurator setup done.
 Schema is seeded into the store
 Data is migrated to the store. Check logs for any failures or warnings during migration.
 Data in the store after migration has been tested to be available
 Update of in-memory jps configuration is done
 Credential store reassociation done
 Starting Keystore reassociation
 The store and ServiceConfigurator setup done.
 Schema is seeded into the store
 Data is migrated to the store. Check logs for any failures or warnings during migration.
 Data in the store after migration has been tested to be available
 Update of in-memory jps configuration is done
 Keystore reassociation done
 Starting audit store reassociation
 The store and ServiceConfigurator setup done.
 Schema is seeded into the store
 Data is migrated to the store. Check logs for any failures or warnings during migration.
 Data in the store after migration has been tested to be available
 Update of in-memory jps configuration is done
 Audit store reassociation done
 Jps Configuration has been changed. Please restart the application server.
 disconnect()
 Disconnected from weblogic server: AdminServer
 wls:/offline> exit()
 Exiting WebLogic Scripting Tool.
 The reassociateSecurityStore command updates these 2 files:
 - jps-config.xml
 - jps-config-jse.xml
 At this point, proceed to the "Cloning The Database Where The RCU Schemas Are Held To Move Them To A New Oracle Database" section in this note and follow all steps detailed there.
- After the process is complete, you can either (both ways mentioned below have been tested):
 a) Keep the data source you created in Weblogic since OBIEE is using that one now to connect to the security store
 OR
 b) Update the original connection for OPSS in Weblogic console to reflect the connection information of the new database.
 Once the change is made, stop OBIEE instance, start it and connect to Analytics. You should be able to successfully connect to Analytics. Then you can go to the Weblogic console and delete the new connection you created to do the reassociation of the security store.
- If you are using the Scheduler or Usage Tracking, and you want to keep the history in those tables (Agents and Usage Tracking activity), you need to export the rows from the source database tables and import them in the new target database tables.
Cloning The Database Where The Original RCU Schemas Are Held To Move Them To A New Oracle Database
- Stop the environment:
 [DOMAIN_HOME]/bitools/bin/stop.sh|.cmd
- Update the database connections via the following files.
 You may want to search within the files for the keyword 'jdbc' as there may be multiple lines to change.
 This note will not provide every example entry, please double-check your files.- [DOMAIN_HOME]/config/fmwconfig/jps-config.xml
- [DOMAIN_HOME]/config/fmwconfig/jps-config-jse.xml
- [DOMAIN_HOME]/config/fmwconfig/jps-config-jse.xml.tmp
- [DOMAIN_HOME]/config/fmwconfig/fmwconfig/jps-config-temp.xml
- [DOMAIN_HOME]/config/fmwconfig/jps-config-temp-xxxxxxxxxxxxxxx.xml
 For example:<property name="jdbc.url" value="jdbc:oracle:thin:@//dbhost.domain:1521/ORCL"/>
 <property name="audit.loader.jdbc.string" value="jdbc:oracle:thin:@//dbhost.domain:1521/ORCL"/>
 - [DOMAIN_HOME]/config/fmwconfig/bienv/core/datasource.properties
 For example:
 datasource.biplatform.url=jdbc\:oracle\:thin\:@(DESCRIPTION\=(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\=dbhost.domain)(PORT\=1521)))(CONNECT_DATA\=(SERVICE_NAME\=ORCL)))
- [DOMAIN_HOME]/config/fmwconfig/bienv/core/odbc.ini
 Note: The default DSN for Oracle Delivers (scheduler) in [DOMAIN_HOME]/config/fmwconfig/biconfig/OBISCH/schedulerconfig.xml
 [opss_datasource]
 HostName=dbhost.domain
 PortNumber=1521
 Driver=/app/oracle/biee/bi/common/ODBC/Merant/7.1.4/lib/ARora27.so
 EnableNcharSupport=1
 ServiceName=MySID
 Description=DataDirect 7.1.4 Oracle Wire Protocol
 [biplatform_datasource]
 HostName=dbhost.domain
 PortNumber=1521
 Driver=/app/oracle/biee/bi/common/ODBC/Merant/7.1.4/lib/ARora27.so
 EnableNcharSupport=1
 ServiceName=MySID
 Description=DataDirect 7.1.4 Oracle Wire Protocol
- All files in: [DOMAIN_HOME]/config/jdbc
 Note: This is the same as updating the connection pools via Weblogic console (AdminServer must be running for that method to be available)- [DOMAIN_HOME]/config/jdbc/bip_datasource-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/BIPlatformDatasource-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/LocalSvcTblDataSource-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/mds-owsm-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/WLSSchemaDataSource-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/jdbc/opss-audit-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/opss-auditview-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/opss-datasource-jdbc.xml
- [DOMAIN_HOME]/config/jdbc/WLSServicesDatasource-jdbc.xml
 
 
- Execute DOMAIN_HOME/bitools/bin/sync_midtier_db.sh|cmd as documented
 See: System Administration Guide - Appendix D - BI-Specific WLST Command Reference for details of running the script
 Note: If you are using Active GridLink (AGL) with a SCAN address JDBC style link, you may encounter an error syncing the database../sync_midtier_db.sh
 Apr 17, 2018 3:26:06 PM com.oracle.cie.domain.info.variable.DomainVariableServiceImpl <init>
 INFO: initializing domaininformation object.
 Apr 17, 2018 3:26:09 PM com.oracle.cie.domain.info.variable.DomainVariableServiceImpl <init>
 INFO: initializing domaininformation object.
 Syncing mid tier database in expanded domain.
 -- 1 -- Read datasource from WebLogic
 Apr 17, 2018 3:26:34 PM com.oracle.cie.domain.security.DomainSecurityService entropyWarning
 INFO: Time required to process encryption was longer than expected: 25339ms; possible lack of entropy might result in poor performance (getEncryptionContext)
 Base datasource:
 Type: Oracle
 URL: jdbc:oracle:thin:@//localhost:1521/PDBORCLNEW
 Properties:
 SendStreamAsBlob = true
 user = BIEE_BIPLATFORM
 oracle.net.CONNECT_TIMEOUT = 10000
 Driver oracle.jdbc.OracleDriver
 -- 2 -- Syncing JPS configuration in file: /app/oracle/biee/user_projects/domains/bi/config/fmwconfig/jps-config.xml
 Setting odbc.dsn=opss_datasource
 -- 3 -- Syncing JPS configuration in file: /app/oracle/biee/user_projects/domains/bi/config/fmwconfig/jps-config-jse.xml
 Setting odbc.dsn=opss_datasource
 -- 4 -- Syncing BI Scheduler database configuration
 Setting DSN to biplatform_datasource
 -- 5 -- Syncing database connection properties to config/fmwconfig/bienv/core/datasource.properties
 Saving DB connect properties to: /app/oracle/biee/user_projects/domains/bi/config/fmwconfig/bienv/core/datasource.properties
 2018-04-17T15:26:36.219-05:00
 -- 6 -- Syncing ODBC configuration at /app/oracle/biee/user_projects/domains/bi/config/fmwconfig/bienv/core/odbc.ini
 Configuring DSN : opss_datasource
 Updating credential for data source : opss_datasource
 Setting credentials
 Apr 17, 2018 3:26:40 PM oracle.security.opss.internal.runtime.ServiceContextManagerImpl getContext
 WARNING: Bootstrap services are used by OPSS internally and clients should never need to directly read/write bootstrap credentials. If required, use Wlst or configuration management interfaces.
 Configuring DSN : biplatform_datasource
 Updating credential for data source : biplatform_datasource
 Setting credentials
 Apr 17, 2018 3:26:40 PM oracle.security.jps.JpsStartup startWithRetry
 INFO: Jps initializing.
 Apr 17, 2018 3:26:47 PM org.hibernate.validator.internal.util.Version <clinit>
 INFO: HV000001: Hibernate Validator 5.1.3.Final
 Apr 17, 2018 3:26:53 PM oracle.security.jps.internal.common.util.JpsCommonUtil initPolicyProvider
 INFO: Initializing OPSS Java Policy Provider.
 Apr 17, 2018 3:26:53 PM oracle.security.jps.internal.common.util.JpsCommonUtil initPolicyProvider
 INFO: OPSS Java Policy Provider initialized.
 Apr 17, 2018 3:26:53 PM oracle.security.jps.internal.common.util.JpsCommonUtil initPolicyProvider
 INFO: OPSS Java Policy Provider is set as the system-wide Policy object.
 Apr 17, 2018 3:26:53 PM oracle.security.jps.JpsStartup startWithRetry
 INFO: Jps started.
 Apr 17, 2018 3:26:54 PM oracle.security.audit.Auditor init
 WARNING: IAU:IAU-6012: Unable to determine the audit log directory. No log directory specified.
 Apr 17, 2018 3:26:54 PM oracle.security.jps.util.JpsUtil disableAudit
 INFO: JpsUtil: isAuditDisabled set to true
 Apr 17, 2018 3:26:54 PM oracle.security.jps.internal.audit.AuditServiceImpl validateLogPossible
 WARNING: No audit log directory is set. Cannot perform audit operations for component JPS.
 Currently (12.2.1.2 and lower), the only working TNS style for sync_midtier_db is:
 (DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port))(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=port1)))(CONNECT_DATA=(SERVICE_NAME=service)))
 sync_midtier_db reads only opss_datasource and biplatform_datasource.- There is a workaround:- Configure the connection properties via the form in the Weblogic Console.
 https://docs.oracle.com/middleware/1212/wls/JDBCA/gridlink_datasources.htm#JDBCA460
 This will generate a multiple address [non-SCAN] URL including LOAD_BALANCE=on
- Run sync_midtier_db
- Convert the JDBC URL back to the single SCAN address via the Console or files.
- 12.2.1.3 will be updated to support single SCAN address for sync_midtier_db
 
- Configure the connection properties via the form in the Weblogic Console.
 
- There is a workaround:
- If you are using the RCU database for Usage Tracking, then update your connection pools in the repository (RPD).
- By default, no Initialization Blocks use the RCU database, this is just a notation to check in case you have used the RCU database for any reason other than what is configured during a default installation.
- If you followed the approach of installing new RCU schemas go back to "Installing New RCU Schemas In The New Oracle Database" section in this note and decide if you want to complete the last 2 optional steps listed concerning the data source connection you created in Weblogic and the historical data in the Scheduler and Usage Tracking tables.
 
No comments:
Post a Comment