|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You don't learn to walk by following rules. You learn by doing, and by falling over.
Ask Me
Oracle Interview Questionware(Chapter-2)
The local_listener init.ora parameter specifies a network name that resolves to an address or address list of Oracle Net local listeners and it is used used ONLY when you have multiple listeners that are running on the same machine as this instance. The LOCAL_LISTENER parameter is a component of the cross instance registration technology for Oracle RAC (Real Application Clusters). Cross instance registration needs the local listener to help manage connections across all database instances for load balancing and failover. The local listener is particularly meaningful for the RAC configuration featured by multiple listeners on cluster nodes. If your Oracle configuration is not RAC enabled, you may as well remove the LOCAL_LISTENER parameter from your spfile in case for default port 1521 . SQL> show parameter local_listener NAME TYPE VALUE ------------ ----------- local_listener string SQL> alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.2.210)(PORT=1521))'; System altered. SQL> alter system register; System altered. To dynamically update the LOCAL_LISTENER parameter, use the SQL statement ALTER SYSTEM SET: ALTER SYSTEM SET LOCAL_LISTENER='LISTENER_PRIM' scope=both sid='*' ; If you set the parameter to null with the statement that follows, then the default local address of TCP/IP, port 1521 is assumed. ALTER SYSTEM SET LOCAL_LISTENER='' example : in local host tnsnames.ora file LISTENER_PRIM = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.129)(PORT = 1521))) suppose we have 2-node cluster: host1 and host2, with VIP address host1-vip and host2-vip respectively.One RAC database (orcl) running on this cluster; instace 1 (orcl1) on host1, and instance 2 (orcl2) on host2 we have listener_host1 running on host1, and listener_host2 running on host2.listener_host1 is considered local listener for orcl1 instance, while listener_host2 is considered remote listener for that same orcl1 instance.similarly, listener_host2 is considered local listener for orcl2 instance, and considered as remote listener for orcl1. |
1. Single patch or intrim patch --------- Opatch apply 2. Patchset(100 of patches) BUNDLE PATCH --------- Opatch napply -<Locatio> -id -skip_subset -skip_duplicate 3. Patchset update PSU=CPU(critical patch Update)+ Patchset) Log file for Opatch utility can be found at : $ORACLE_HOME/cfgtoollogs/opatch |
You can create local inventory at any location while installing Oracle Home. You need to use -invPtrLoc variable along with runInstaller command and give the location of oraInst.loc. Otherwise the default path assumed for oraInst.loc is /etc/oraInst.loc. ./runInstaller -invPtrLoc /slot/ems2029/appmgr/apps/tech_st/10.1.2/oraInst.loc If you are using central inventory then -invPtrLoc variable is not required. You can also get the detailed view of inventory using following command. In case of detail information it gives which are the files that this patch have touched. $ORACLE_HOME/OPatch/opatch lsinventory -detail -invPtrLoc /slot/ems2029/oracle/db/tech_st/11.1.0/oraInst.loc |
1. You MUST read the Readme.txt file included in opatch file, look for any prereq. steps/ post installation steps or and DB related changes. Also, make sure that you have the correct opatch version required by this patch. 2.Make sure you have a good backup of database. 3. Make a note of all Invalid objects in the database prior to the patch. 4. Shutdown All the Oracle Processes running from that Oracle Home , including the Listener and Database instance, Management agent etc. 5. You MUST Backup your oracle Home and Inventory tar -cvf $ORACLE_HOME $ORACLE_HOME/oraInventory | gzip > Backup_Software_Version.tar.gz 6. Unzip the patch in $ORACLE_HOME/patches 7. cd to the patch direcory and do opatch -apply to apply the patch. 8. Read the output/log file to make sure there were no errors. |
I started database in upgrade mode and fired catupgrd.sql : SQL> startup upgrade ORACLE instance started. Total System Global Area 6413680640 bytes Fixed Size 2160112 bytes Variable Size 1946159632 bytes Database Buffers 4429185024 bytes Redo Buffers 36175872 bytes Database mounted. Database opened. SQL> @catupgrd.sql DOC>####################################################################### DOC>####################################################################### DOC> DOC> The first time this script is run, there should be no error messages DOC> generated; all normal upgrade error messages are suppressed. DOC> DOC> If this script is being re-run after correcting some problem, then DOC> expect the following error which is not automatically suppressed: DOC> DOC> ORA-00001: unique constraint () violated DOC># FROM registry$database * ERROR at line 2: ORA-00942: table or view does not exist This error is related to timezone file which must be version 4 for Oracle version 11g.If timezone is not version 4 than patch needs to be applied. Query to check timezone file is: SQL> select * from v$timezone_file; FILENAME VERSION ———— ———- timezlrg.dat 4 SQL> select * from v$timezone_file; FILENAME VERSION ———— ———- timezlrg.dat 4 So I had correct version.I remember applying patch before upgrade.I got lucky because patch existed for version 10.2.0.3. If there is no patch for your Oracle versions than patch can be download for similar version and applied manually. Instructions are below: 1. Download the identified patch. 2. Unzip the patch, and locate the 2 files timezone.dat and timezlrg.dat in the “files/oracore/zoneinfo” directory of the uncompressed patch (or from the relevant .jar file of a patchset). If there is also a readme.txt in this location then make a note of this as well. 3. Backup your existing files in $ORACLE_HOME/oracore/zoneinfo – THIS CAN BE VITAL, DO NOT SKIP. note: Before going on with step 4, make sure the current files are not in use. On Windows the files will simply refuse to be removed when the are in use. On Unix replacing the files whilst they are in use can cause the files to become corrupt. Use the fuser command before replacing the files to make sure they are not in use. 4. Copy the 2 .dat files and possibly the readme.txt file that were found in step 2 into the $ORACLE_HOME/oracore/zoneinfo directory. 5. Restart the database (in case of installation on a database), or restart the client applications (in case of client install). Note that the database did not need to be down before the time zone files were applied, but it does need to be restarted afterwards. |
When nodes of the database in a cluster can’t communicate with each other, they modify the data blocks and may continue to process independently. If more than one instance modify the same block, locking or synchronization of the blocks of the data does not occur and it may happen that the blocks get overwritten by others in the cluster. This process is called split brain. |
|
|
|
|
|
|
|
|
|
Oracle 12c New Feacture
- Prior to Oracle Database 12c the maximum length for a VARCHAR2 and NVARCHAR2 was 4,000, and the maximum length of a RAW column was 2,000. Starting with Oracle Database 12c, these data types have been extended to accommodate a length of 32,767.
- Prior to Oracle Database 12c, you could not have multiple indexes defined on the exact same combination of columns in one table. This has changed in 12c. You can now have multiple indexes on the same set of columns. However, you can only do this if there is something physically different about the indexes; for example, one index is created as a B-tree index, and the second, as a bitmap index. Also, there can be only one visible index for the same combination of columns. Any other indexes created on that same set of columns must be declared invisible;
- The NVARCHAR2 and NCHAR data types are useful if you have a database that was originally created with a single-byte,
- If you use a VARCHAR2 for a field that contains date information, you are guaranteeing future reporting inconsistencies and needless conversion function(such as TO_DATE and TO_CHAR). fixed-width character set, but sometime later you need to store multibyte character set data in the same database.
- The RAW data type allows you to store binary data in a column. This type of data is sometimes used for storing globallyunique identifiers or small amounts of encrypted data. If you need to store large amounts (over 2000 bytes) of binary data then use a BLOB instead.
- You can also instruct Oracle to not re-adjust the high-water mark when shrinking a table. This is done via theCOMPACT clause—for example:
- SQL> alter table emp shrink space compact;
SUSE Linux Bug 208 day server crash
Environment :SUSE Linux Enterprise 11 Service Pack 1
Scenario:
The system crashes with an up time of around 209 daysThe issue happens under the following conditions:CPU vendor is Intel/proc/cpuinfo contains both of the following CPU flags:constant_tscnonstop_tscdmesg and/or /var/log/boot.msg does not contain the stringMarking TSC unstablekernel flavor is not xenOnly if all four conditions are met the system is affected.
The freeze/crash can happen anytime after 208 days uptime. It cannot happen before the system reaches 208 days uptime.
Resolution :
For critical production systems that cannot update their kernel version, we currently recommend a cold reboot before the system reaches 208 days uptime.A fix for this issue has been released since kernel version 2.6.32.59-0.7.1. We always recommend to install the latest version of the kernel.
Golden Gate cross platform replication from MySQL to Oracle
Databases | Oracle | MySQL |
Version | 19.3.0.0.0 | 5.7.28 |
Golden Gate | 19.1.0.0.3 | 19.1.0.0.4 |
OS | Oracle Linux Server release 7.3 | Oracle Linux Server release 7.3 |
Base Location | /u01/oracle/database19c | /u01/mysql |
Golden gate base | /gg_gate/oracle | /gg_gate_mysql |
Installation Link | - | https://deepakoracledba.blogspot.com/search/label/MySql |
-rw-r--r--. 1 root root 71654538 Apr 21 19:20 191003_ggs_Linux_x64_MySQL_64bit.zip
-rw-r--r--. 1 root root 556240981 Apr 21 19:21 191004_fbo_ggs_Linux_x64_shiphome.zip
Step 2: Installation of golden gate quite simple , we just need to unzip the binaries to respective golden gate base locations.
In 19c Oracle binary , we have GUI based installation option is available , that can be used .
MYSQL_GOLDENGATE INSTALLATION
[oracle@xcell oradba]$ unzip -l 191003_ggs_Linux_x64_MySQL_64bit.zip Archive: 191003_ggs_Linux_x64_MySQL_64bit.zip Length Date Time Name --------- ---------- ----- ---- 289024000 09-07-2019 21:22 ggs_Linux_x64_MySQL_64bit.tar 1413 05-30-2019 05:19 OGG-19.1.0.0-README.txt 326332 09-17-2019 23:38 OGG_WinUnix_Rel_Notes_19.1.0.0.3.pdf --------- ------- 289351745 3 files 2. tar -xvf ggs_Linux_x64_MySQL_64bit.tar -C /gg_gate/mssql/ |
ORACLE _GOLDENGATE INSTALLATION Unzip 191004_fbo_ggs_Linux_x64_shiphome.zip -d /gg_gate/oracle |
Step 3: Configuring golden gate for MySQL and Oracle
MYSQL_GOLDENGATE Configuration Ø Golden gate config Go to /gg_gate/mysql Location [root@xcell mysql]# ./ggsci Oracle GoldenGate Command Interpreter for MySQL Version 19.1.0.0.3 OGGCORE_19.1.0.0.0_PLATFORMS_190907.0144 Linux, x64, 64bit (optimized), MySQL Enterprise on Sep 7 2019 08:41:32 Operating system character set identified as UTF-8. Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved. GGSCI (xcell.home.com) 1> show Parameter settings: SET DEBUG OFF Current directory: /gg_gate/mssql Editor: vi 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirrpt does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirprm does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirchk does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirchk does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirpcs does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirsql does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirdef does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirdmp does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dirwlt does not exist yet. 2020-04-21 22:20:49 WARNING OGG-15194 Directory /gg_gate/mssql/dircrd does not exist yet. GGSCI (xcell.home.com) 2> create subdirs Creating subdirectories under current directory /gg_gate/mssql Parameter file /gg_gate/mssql/dirprm: created. Report file /gg_gate/mssql/dirrpt: created. Checkpoint file /gg_gate/mssql/dirchk: created. Process status files /gg_gate/mssql/dirpcs: created. SQL script files /gg_gate/mssql/dirsql: created. Database definitions files /gg_gate/mssql/dirdef: created. Extract data files /gg_gate/mssql/dirdat: created. Temporary files /gg_gate/mssql/dirtmp: created. Credential store files /gg_gate/mssql/dircrd: created. Masterkey wallet files /gg_gate/mssql/dirwlt: created. Dump files /gg_gate/mssql/dirdmp: created. GGSCI (xcell.home.com) 3> show Parameter settings: SET DEBUG OFF Current directory: /gg_gate/mssql Editor: vi Reports (.rpt) /gg_gate/mssql/dirrpt Parameters (.prm) /gg_gate/mssql/dirprm Replicat Checkpoints (.cpr) /gg_gate/mssql/dirchk Extract Checkpoints (.cpe) /gg_gate/mssql/dirchk Process Status (.pcs) /gg_gate/mssql/dirpcs SQL Scripts (.sql) /gg_gate/mssql/dirsql Database Definitions (.def) /gg_gate/mssql/dirdef Dump files (.dmp) /gg_gate/mssql/dirdmp Masterkey wallet files (.wlt) /gg_gate/mssql/dirwlt Credential store files (.crd) /gg_gate/mssql/dircrd GGSCI (xcell.home.com) 5> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER STOPPED GGSCI (xcell.home.com) 6> edit param mgr GGSCI (xcell.home.com) 1> view param mgr PORT 7811 GGSCI (xcell.home.com) 2> GGSCI (xcell.home.com) 7> start mgr Manager started. GGSCI (xcell.home.com) 8> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING Ø MYSQL database base config - Create a new datbase - Create necessary golden gate users. - Create few tables [root@xcell ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.28-log MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> select @@VERSION; +------------+ | @@VERSION | +------------+ | 5.7.28-log | +------------+ 1 row in set (0.00 sec) mysql> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec) mysql> create database mydb; -- create a new database mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.59 sec) mysql> use mydb Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> CREATE USER 'ogguser1'@'localhost' IDENTIFIED BY 'WElcome@@1'; Query OK, 0 rows affected (0.61 sec) mysql> CREATE USER 'oggadm1'@'localhost' IDENTIFIED BY 'WElcome@@1'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'ogguser1'@'localhost'; Query OK, 0 rows affected (0.05 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'oggadm1'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> use mydb Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> CREATE TABLE `DEPT` ( `DEPTNO` tinyint(4) DEFAULT NULL, `DNAME` varchar(14) DEFAULT NULL, `LOC` varchar(13) DEFAULT NULL, UNIQUE KEY `PK_DEPT` (`DEPTNO`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; mysql> show tables; +-----------------------+ | Tables_in_mydb (DEPT) | +-----------------------+ | DEPT | +-----------------------+ 1 row in set (0.00 sec) Ø Golden gate extract and Pump process configuration Edit param file and add below lines. GGSCI (xcell.home.com) 2> view param EXTMYSQL extract extmysql SETENV(MYSQL_HOME='/u01/mysql/mysql-5.7.28-el7-x86_64/bin') SETENV(MYSQL_UNIX_PORT='/u01/mysql/mysql-5.7.28-el7-x86_64/mysql.sock') dboptions host localhost, connectionport 3307 sourcedb mydb, userid oggadm1, password WElcome@@1 exttrail /gg_gate/mysql/dirdat/lt TRANLOGOPTIONS ALTLOGDEST /u01/mysql/mysql-5.7.28-el7-x86_64/data/mysql.index table mydb.*; GGSCI (xcell.home.com) 3> view param DPMYSQL EXTRACT DPMYSQL RMTHOST 192.168.10.151,MGRPORT 7809 RMTTRAIL /gg_gate/oracle/dirdat/mysql/rt PASSTHRU table mydb.*; GGSCI (xcell.home.com) 4> GGSCI (xcell.home.com) 1> start mgr Manager started. GGSCI (xcell.home.com) 4> add extract extmysql,tranlog,begin now EXTRACT added. GGSCI (xcell.home.com) 4> add exttrail /gg/gate/mysql/dirdat/lt,extract extmysql EXTTRAIL added. GGSCI (xcell.home.com) 3> start extmysql Sending START request to MANAGER ... EXTRACT EXTMYSQL starting GGSCI (xcell.home.com) 4> add extract dpmysql,exttrailsource /gg/gate/mysql/dirdat/lt EXTRACT added. GGSCI (xcell.home.com) 4>add rmttrail /gg/gate/oracle/dirdat/rt,extract dpmysql RMTTRAIL added. GGSCI (xcell.home.com) 4>start dpmysql Before starting pump need to start manager process on remote site i.e oracle end . |
Oracle GG_configuration 1. Here is have created a database called PCGB(container)/POGB(pluggable database) 2. Make sure both database and listener up and running 3. Enable the parameter for GoldenGate replication alter system set enable_goldengate_replication=true; 4. Create golden gate user and grant below roles under pluggable database create user ggadmin identified by ggadmin; exec DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(grantee=>'ggadmin',privilege_type=>'CAPTURE',grant_optional_privileges=>'*'); 5. Add supplemental logdata on columns alter database add supplemental log data(all) columns; 6. Create separate schema called myora where dept table will be replicated. Create user myora identified by myodadb; create table dept (deptno number,dname varchar2(10),loc varchar2(15)); 7. Set Oracle _home and then Go to Golden gate binary location , GGSCI (xcell.home.com) 2> dblogin userid ggadmin@POGB, password ggadmin Successfully logged into database POGB. GGSCI (xcell.home.com as ggadmin@PCGB/POGB) 3> create wallet Created wallet. GGSCI (xcell.home.com as ggadmin@PCGB/POGB) 3> add credentialstore Credential store created. GGSCI (xcell.home.com as ggadmin@PCGB/POGB) 3> alter credentialstore add user ggadmin@pogb,password ggadmin,alias oggadmin_ggs Credential store altered. GGSCI (xcell.home.com as ggadmin@PCGB/POGB) 4> view param REPMYSQL REPLICAT repmysql SETENV(ORACLE_HOME='/u01/oracle/database19c') SETENV(ORACLE_SID='pogb') SETENV(TNS_ADMIN='/u01/oracle/database19c/network/admin/') useridalias oggadmin_ggs ASSUMETARGETDEFS MAP mydb.*,target MYORA.*; GGSCI (xcell.home.com as ggadmin@PCGB/POGB) 4> GGSCI (xcell.home.com as ggadmin@PCGB/POGB) 4> add replicat repmysql,integrated exttrail /gg_gate/oracle/dirdat/rt GGSCI (xcell.home.com) 2> start REPMYSQL Sending START request to MANAGER ... REPLICAT REPMYSQL starting GGSCI (xcell.home.com) 3> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REPMYSQL 00:00:00 46:37:47 GGSCI (xcell.home.com) 4> |
Popular Posts
-
SUSE Linux Bug 208 day Server Crash
-
Oracle 11g New feactures
-
The local_listener init.ora parameter specifies a network name that resolves to an address or address list of Oracle Net local li...