溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

dgbroker搭建的完整過程

發(fā)布時(shí)間:2021-08-23 02:28:11 來源:億速云 閱讀:125 作者:chen 欄目:關(guān)系型數(shù)據(jù)庫(kù)

本篇內(nèi)容介紹了“dgbroker搭建的完整過程”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一個(gè)表或索引或其它對(duì)象使用BUFFER CACHE,最終使用哪個(gè)CBC LATCH,由其文件號(hào)以及數(shù)據(jù)塊號(hào),進(jìn)行HASH后使用指定的CBC LATCH

使用Shell腳本實(shí)現(xiàn)自動(dòng)化靜默安裝Oracle軟件

下載oracle 11g
下載地址:wget  http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_1of2.zip
下載地址:wget  http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_2of2.zip

一 安裝java
查看CentOS自帶JDK是否已安裝。yum list installed |grep java

查看yum庫(kù)中的Java安裝包 命令:yum -y list java 看看可安裝的軟件包有沒有java-1.8.0-openjdk

二 檢查和安裝需要的rpm
yum -y install binutils compat-libstdc++ compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers ksh libaio-devel libstdc++-devel make sysstat unixODBC-devel binutils-* compat-libstdc++* elfutils-libelf* glibc* gcc-* libaio* libgcc* libstdc++* make* sysstat* unixODBC* wget unzip
unixODBC-devel
還有必須下載的包
 wget ftp://ftp.pbone.net/mirror/www.whiteboxlinux.org/whitebox/4/en/updates/i686/glibc-2.3.4-2.43.i686.rpm

 
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
安裝依賴包

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel
檢查有沒有31個(gè)

還能用如下方式檢查,包括centos6,centos7的包
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
compat-libcap1 \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXi \
libXtst \
make \
sysstat \
unixODBC \
unixODBC-devel

 
各個(gè)版本的檢查包和版本課看官方文檔
https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCFACHG
 
三 創(chuàng)建用戶組和用戶
userdel -r oracle
groupadd -g 700 oinstall
groupadd -g 701 dba
useradd -g oinstall -G dba -u 700 oracle
passwd oracle

id oracle

四 設(shè)置ORACLE環(huán)境變量
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/u02/oracle
export ORACLE_HOME=/u02/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG="american_america.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH


//腳本方式
new_export = "export ORACLE_BASE=/u02/oracle"
echo "export ORACLE_BASE=/u02/oracle" >> ~/.bash_profile
echo "export ORACLE_HOME=/u02/oracle/product/11.2.0/dbhome_1" >> ~/.bash_profile
echo "export ORACLE_SID=orcl" >> ~/.bash_profile

bash shell:腳本中修改profile文件更新LD_LIBRARY_PATH的示例 http://blog.csdn.net/10km/article/details/51953721

source ~/.bash_profile

查看環(huán)境變量是否完成
env | grep ORA


五 創(chuàng)建安裝目錄
su - root
mkdir -p /u02/oracle
mkdir -p /u02/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u02/oracle
chmod -R 775 /u02/oracle

vi /etc/oraInst.loc
inventory_loc==/home/oracle/oraInventory
inst_group=oinstall

source /etc/oraInst.loc
 
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

五 解壓
unzip p10404530_112030_Linux-x86-64_1of7.zip; unzip p10404530_112030_Linux-x86-64_2of7.zip

六 復(fù)制響應(yīng)文件模板
用oracle用戶復(fù)制
su - oracle
mkdir /home/oracle/etc
mkdir /home/oracle/oraInventory
cp /u02/oracle/database/response/*  /home/oracle/etc/
七 設(shè)置響應(yīng)文件
su - root
chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)
八 靜默安裝Oracle軟件 
su - oracle
修改安裝Oracle軟件的響應(yīng)文件/home/oracle/etc/db_install.rsp

#刪除應(yīng)答文件中的注釋行(以#開頭)
$ sed -i 's/^#.*$//g' *.rsp
刪除沒有內(nèi)容的空行(^$)
$ sed -i '/^$/d' *.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY         // 29 安裝類型

ORACLE_HOSTNAME=oracle                            // 37 主機(jī)名稱(hostname查詢)

UNIX_GROUP_NAME=oinstall                          // 42 安裝組

INVENTORY_LOCATION=/home/oracle/oraInventory            //47 INVENTORY目錄(不填就是默認(rèn)值)  注意:這里inventory目錄最好不要填寫與oracle安裝路徑一致的目錄,會(huì)報(bào)錯(cuò)

SELECTED_LANGUAGES=en,zh_CN,zh_TW                       // 78 選擇語言

ORACLE_HOME=/u02/oracle/product/11.2.0/dbhome_1         // 83 oracle_home

ORACLE_BASE=/u02/oracle                                 // 88 oracle_base

oracle.install.db.InstallEdition=EE                     // 99 oracle版本

oracle.install.db.isCustomInstall=false                     //自定義安裝,否,使用默認(rèn)組件

oracle.install.db.DBA_GROUP=dba                          // 143 dba用戶組

oracle.install.db.OPER_GROUP=oinstall                   // 147 oper用戶組

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE         // 160 數(shù)據(jù)庫(kù)類型

oracle.install.db.config.starterdb.globalDBName=orcl              // 165 globalDBName

oracle.install.db.config.starterdb.SID=orcl                          // 170 SID

oracle.install.db.config.starterdb.memoryLimit=81920        // 200 自動(dòng)管理內(nèi)存的內(nèi)存(M)

oracle.install.db.config.starterdb.password.ALL=oracle        // 233 設(shè)定所有數(shù)據(jù)庫(kù)用戶使用同一個(gè)密碼
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false            // 376(手動(dòng)寫了false)

DECLINE_SECURITY_UPDATES=true                                // 385 設(shè)置安全更新(貌似是有bug,這個(gè)一定要選true,否則會(huì)無限提醒郵件地址有問題,終止安裝。PS:不管地址對(duì)不對(duì))

執(zhí)行命令 開始默認(rèn)安裝
cd /u02/oracle/database

./runInstaller  -ignorePrereq -showProgress -silent -responseFile  /home/oracle/etc/db_install.rsp
./runInstaller  -ignorePrereq -showProgress -silent -force -responseFile  /home/oracle/etc/db_install.rsp
./runInstaller  -silent -force -responseFile /home/oracle/etc/db_install.rsp
這時(shí)可以看安裝日志
INFO: Number of threads for fast copy :1


這里在centos7上安裝oracle11g時(shí),不論11.1.0.1還是 11.2.0.4 都會(huì)報(bào)錯(cuò)
String: Error in invoking target 'agent nmhs' of makefile '/u02/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'.
這個(gè)錯(cuò)誤相當(dāng)于圖形界面安裝時(shí)遇到的錯(cuò)誤,但圖形界面安裝遇到錯(cuò)誤,會(huì)停止,且提供重試的按鈕,靜默安裝就不成,具體解決方法可以參考
http://www.jb51.net/article/129719.htm

安向?qū)?zhí)行倆文件
/home/oracle/oraInventory/orainstRoot.sh
/u02/oracle/product/11.2.0/dbhome_1/root.sh

九 靜默配置網(wǎng)絡(luò)
編輯netca.rsp文件

$ more /u02/oracle/database/response/netca.rsp
[GENERAL]
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}

在oracle用戶下
$ORACLE_HOME/bin/netca /silent /responsefile /home/oracle/database/response/netca.rsp

十 靜默安裝數(shù)據(jù)庫(kù)
在oracle 用戶安裝。需要配置靜默安裝數(shù)據(jù)庫(kù)響應(yīng)的模板文件,也是在安裝軟件包中解壓在database下的response 目錄下的 dbca_rsp 文件,具體配置如下
vim dbca.rsp

//$ more /u02/soft/database/response/dbca.rsp

cp /u02/oracle/database/response/dbca.rsp /u02/oracle/database/response/dbca.rsp.bak

vi /u02/oracle/database/response/dbca.rsp

[GENERAL]

RESPONSEFILE_VERSION = "11.2.0"

OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]

GDBNAME = "lanmao"           #全局?jǐn)?shù)據(jù)庫(kù)的名字 DB_NAME_DB_DOMAIN

SID = "orcl"                 # 數(shù)據(jù)庫(kù)實(shí)例,根據(jù)上面的你寫的SID 一樣的,隨便寫。

TEMPLATENAME = "General_Purpose.dbc"   #  這個(gè)可以是默認(rèn)的模板,不會(huì)寫默認(rèn)的,最好是默認(rèn),

                                 這里是我們dba 寫的,所以就用上了。

SYSPASSWORD = "2011@oracle"

SYSTEMPASSWORD = "2011@oracle"

SYSMANPASSWORD = "2011@oracle"

DBSNMPPASSWORD = "2011@oracle"   # 前面這四個(gè)都可以不管,默認(rèn)就行

CHARACTERSET = "ZHS16GBK"         #編碼

NATIONALCHARACTERSET=“UTF8”   #編碼

[createTemplateFromDB]

SOURCEDB = "iZ2zehy7gff0kpg1swp1czZ:1521:orcl"

SYSDBAUSERNAME = "system"

TEMPLATENAME = "My Copy TEMPLATE"

[createCloneTemplate]

SOURCEDB = "orcl"

TEMPLATENAME = "My Clone TEMPLATE"

[DELETEDATABASE]

SOURCEDB = "orcl"

[generateScripts]

TEMPLATENAME = "New Database"

GDBNAME = "orcl11.us.oracle.com"

[CONFIGUREDATABASE]

[ADDINSTANCE]

DB_UNIQUE_NAME = "orcl11g.us.oracle.com"

NODELIST=

SYSDBAUSERNAME = "sys"

[DELETEINSTANCE]

DB_UNIQUE_NAME = "orcl11g.us.oracle.com"

INSTANCENAME = "orcl11g"

SYSDBAUSERNAME = "sys"

$ORACLE_HOME/bin/dbca -silent -responseFile /db/soft/database/response/dbca.rsp
$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
/u02/oracle/database/response/dbca.rsp


十一 刪除方法
數(shù)據(jù)庫(kù)安裝成功后,要?jiǎng)h除執(zhí)行的命令
先聽數(shù)據(jù)庫(kù)
/home/oracle/database/dbca -silent -deleteDatabase -sourcedb orcl11g -sid orcl11g -sysDBAUserName system -sysDBAPassword oracle

沒安裝成功時(shí)刪除數(shù)據(jù)庫(kù)和軟件方法
刪除/u02/oracle/oradata目錄下對(duì)應(yīng)數(shù)據(jù)庫(kù)文件夾
刪除/u02/oracle/flash_recovery_area 目錄下對(duì)應(yīng)數(shù)據(jù)庫(kù)文件夾
最重要/etc/oratab 刪除里面最后的對(duì)應(yīng)數(shù)據(jù)庫(kù)的記錄
--刪除 vi /home/oracle/oraInventory/ContentsXML/inventory.xml


root用戶
swapoff -a && swapon -a
rm -fr /u02/oracle/oradata
rm -fr /u02/oracle/flash_recovery_area
rm -fr /home/oracle/oraInventory
rm -fr /u02/oracle/product/11.2.0/dbhome_1


vi /etc/oratab
--vi /home/oracle/oraInventory/ContentsXML/inventory.xml
--sed -i '/^<HOME NAME="OraDb11g_home1"/d' /home/oracle/oraInventory/ContentsXML/inventory.xml

mkdir -p /u02/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u02/oracle
chmod -R 775 /u02/oracle

mkdir -p /u02/oracle/oradata
mkdir -p /u02/oracle/flash_recovery_area
chown -R oracle:oinstall /u02/oracle/oradata
chmod -R 775 /u02/oracle/oradata
su - oracle
mkdir /home/oracle/oraInventory


/u02/oracle/oradiag_oracle/diag/clients/user_oracle/host_2133379358_76/alert

跟蹤錯(cuò)誤sqlplus 方法
strace sqlplus / as sysdba
strace -f -o /tmp/sqlplus.log sqlplus / as sysdba
查看為什么出現(xiàn) ORA-12547: TNS:lost contact

select open_mode from v$database;


遇到的問題
問題1
在靜默安裝oracle的時(shí)候,在安裝軟件以后,進(jìn)入sqlplus后,總是報(bào)TNS connect lost,這時(shí)就在網(wǎng)上查看了這個(gè)錯(cuò)誤對(duì)應(yīng)問題,其中說是
bin目錄里oracle執(zhí)行文件大小為0,后來就反復(fù)裝,發(fā)現(xiàn)裝的時(shí)候果然系統(tǒng)裝到link oracle的時(shí)候就不動(dòng)了,最后看日志的時(shí)候看這里最終
報(bào)錯(cuò)。然后就在日志里查看了對(duì)應(yīng)的錯(cuò)誤。和日志里遇到的第一個(gè)錯(cuò)誤。
其實(shí)判斷這個(gè)題很容易,重要的是看日志
日志在安裝時(shí),已經(jīng)輸出了具體位置和文件名,打開后就能看到。里面發(fā)現(xiàn)的第一個(gè)報(bào)錯(cuò)信息
INFO: collect2: error: ld returned 1 exit status
make[1]: *** [/u02/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl] Error 1
make: *** [emdctl] Error 2

INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/u02/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. See '/home/oracle/oraInventory/logs/installActions2017-12-12_04-48-00PM.log' for details.
Exception Severity: 1
然后根據(jù)網(wǎng)上的提示就是在ins_emagent里加 -lnnet11
然后為讓這些字節(jié)是0的文件生效,就執(zhí)行了bin目錄里的relink all
最后oracle文件就生成了,且在進(jìn)入sqlplus就不報(bào)tns的錯(cuò)誤了,最后說的是連接一個(gè)正常實(shí)例的問題。


打印日志的時(shí)候,在這個(gè)位置會(huì)等很長(zhǎng)時(shí)間
INFO:  - Linking Oracle
rm -f /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle

INFO: gcc  -o /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle -m64 -z noexecstack -L/u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/ -L/u02/oracle/product/11.2.0/dbhome_1/lib/ -L/u02/oracle/product/11.2.0/dbhome_1/lib/stubs/   -Wl,-E /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/opimai.o /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/ssoraed.o /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/ttcsoi.o  -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /u02/oracle/product/11.2.0/dbhome_1/lib/nautab.o /u02/oracl
INFO: e/product/11.2.0/dbhome_1/lib/naeet.o /u02/oracle/product/11.2.0/dbhome_1/lib/naect.o /u02/oracle/product/11.2.0/dbhome_1/lib/naedhs.o /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/config.o  -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11  -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /u02/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a | grep xsyeolap

......
    `cat /u02/oracle/product/11.2.0/db
INFO: home_1/lib/sysliblist` -Wl,-rpath,/u02/oracle/product/11.2.0/dbhome_1/lib -lm    `cat /u02/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -ldl -lm   -L/u02/oracle/product/11.2.0/dbhome_1/lib


orapwd FILE=orapwdORCL11g.pwd PASSWORD=welcome1 ENTRIES=30

問題2 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)報(bào)錯(cuò)
排錯(cuò)方法 看建立數(shù)據(jù)庫(kù)時(shí)alert方法
[oracle@iZ2zehy7gff0kpg1swp1czZ ~]$ cd $ORACLE_BASE/diag/rdbms/orcl11g/orcl11g/trace
[oracle@iZ2zehy7gff0kpg1swp1czZ trace]$ ls -alcr | grep alert
-rw-r-----  1 oracle oinstall 64209 Dec 14 14:45 alert_orcl11g.log
[oracle@iZ2zehy7gff0kpg1swp1czZ trace]$ ls -alcr | grep alert
在其中找到了pfile文件
/u02/oracle/cfgtoollogs/dbca/orcl11g/initorcl11gTemp.ora
startup nomount pfile=/u02/oracle/cfgtoollogs/dbca/orcl11g/initorcl11gTemp.ora;

/u02/oracle/diag/rdbms/orcl11g/orcl11g/trace/orcl11g_ora_16270.trc
要根據(jù)pfile生成spfile,數(shù)據(jù)庫(kù)就能啟動(dòng)到open了
create spfile from pfile='/u02/oracle/cfgtoollogs/dbca/orcl11g/initorcl11gTemp.ora'
create spfile from pfile='$ORACLE_HOME/dbs/initorcl11g.ora'


問題3 手工建庫(kù)時(shí)的問題
根據(jù)文檔手工創(chuàng)建數(shù)據(jù)庫(kù),但輸入創(chuàng)建語句后,系統(tǒng)提示如下錯(cuò)誤
ERROR at line 1:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-01501: CREATE DATABASE failed

ORA-01519: error while processing file '?/rdbms/admin/dtxnspc.bsq' near line 5

ORA-00604: error occurred at recursive SQL level 1

ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type

這個(gè)提示實(shí)際很明顯,但特別注意的是要保證參數(shù)文件里的回退表空間名字和create database語句
里的表空間名字要一樣,而不是和create database里的回退數(shù)據(jù)文件名一樣,這很重要,這可以保證
后面的執(zhí)行腳本時(shí)沒有莫名其妙的錯(cuò)誤。

手工建庫(kù)的過程如下
1 刪除已有數(shù)據(jù)庫(kù)
rm -fr oradata/orcl11g/*.*
rm -fr fast_recovery_area/orcl11g/control02.ctl

2
orapwd FILE=orapwdSORCL.pwd PASSWORD=oracle ENTRIES=30
CREATE SPFILE='spfile.ora' FROM
       PFILE='init.ora';


 CREATE DATABASE orcl11g
     USER SYS IDENTIFIED BY oracle
     USER SYSTEM IDENTIFIED BY oracle
     LOGFILE GROUP 1 ('/u02/oracle/oradata/orcl11g/redo01.log') SIZE 100M BLOCKSIZE 512,
             GROUP 2 ('/u02/oracle/oradata/orcl11g/redo02.log') SIZE 100M BLOCKSIZE 512,
             GROUP 3 ('/u02/oracle/oradata/orcl11g/redo03.log') SIZE 100M BLOCKSIZE 512
     MAXLOGFILES 5
     MAXLOGMEMBERS 5
     MAXLOGHISTORY 1
    MAXDATAFILES 100
    CHARACTER SET ZHS16GBK
    NATIONAL CHARACTER SET AL16UTF16
    EXTENT MANAGEMENT LOCAL
    DATAFILE '/u02/oracle/oradata/orcl11g/system01.dbf' SIZE 325M REUSE
    SYSAUX DATAFILE '/u02/oracle/oradata/orcl11g/sysaux01.dbf' SIZE 325M REUSE
    DEFAULT TABLESPACE users
        DATAFILE '/u02/oracle/oradata/orcl11g/users01.dbf'
        SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
    DEFAULT TEMPORARY TABLESPACE tempts1
        TEMPFILE '/u02/oracle/oradata/orcl11g/temp01.dbf'
        SIZE 20M REUSE
    UNDO TABLESPACE undotbs --undotbs 必須和參數(shù)文件中指定名字一樣
        DATAFILE '/u02/oracle/oradata/orcl11g/UNDOTBS_01.dbf' --UNDOTBS_01沒事隨便取名
        SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
  
rm -fr /tmp/logsql.txt
spool /tmp/logsql.txt --這樣可以執(zhí)行sql腳本后的日志
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
spool off

克隆安裝數(shù)據(jù)庫(kù)軟件
在一臺(tái)機(jī)器上克隆安裝第二個(gè)oracle 軟件
1增加swap分區(qū)
dd if=/dev/zero of=/home/swap1 bs=612 count=612000
mkswap /home/swap1
swapon /home/swap1

2復(fù)制dbhome_1到新位置 cp -r /u02/oracle/product/11.2.0/dbhome_1 /u03_clone/oracle/product/11.2.0/dbhome_1
3chown -R oracle:oinstall /u03_clone/oracle
su - oracle
4 登記復(fù)制后的信息命令
cd /u03_clone/oracle/product/11.2.0/dbhome_1/clone/bin
perl clone.pl ORACLE_BASE=/u03_clone/oracle ORACLE_HOME=/u03_clone/oracle/product/11.2.0/dbhome_1  ORACLE_HOME_NAME=OraDb11g_home_clone
5 驗(yàn)證是否加入產(chǎn)品列表目錄,軟件是否安裝成功
vi /home/oracle/oraInventory/ContentsXML/inventory.xml

dgbroker
1:主庫(kù)配置listener.ora文件和tnsnames.ora文件,添加GLOBAL_DBNAME參數(shù),重啟監(jiān)聽器,所有的節(jié)點(diǎn)都需要配置
cat $ORACLE_HOME/network/admin/listener.ora 
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = PRIMARY) 
      (ORACLE_HOME = /u02/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = orcl11g)  
    )
 (SID_DESC = 
      (GLOBAL_DBNAME = PRIMARY_DGMGRL) 
      (ORACLE_HOME = /u02/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = orcl11g)  
    )
  ) 
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZ2zehy7gff0kpg1swp1czZ)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u02/oracle
 
 
cat $ORACLE_HOME/network/admin/tnsnames.ora 
PRIMARY = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZ2zehy7gff0kpg1swp1czZ)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = orcl11g.localdomain) 
    ) 
  ) 
 
PHYSICAL = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZ2zehy7gff0kpg1swp1czZ)(PORT = 1522)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = orcl11g.localdomain) 
    ) 
  )

復(fù)制主庫(kù)listener和tnsname到備庫(kù)
cd /u02/oracle/product/11.2.0/dbhome_1/network/admin
cp listener.ora tnsnames.ora /u03_clone/oracle/product/11.2.0/dbhome_1/network/admin/
 
備庫(kù)上的listener和tnsname
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = PHYSICAL) 
      (ORACLE_HOME = /u03_clone/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = sorcl11g)         
    )
 (SID_DESC = 
      (GLOBAL_DBNAME = PHYSICAL_DGMGRL) 
      (ORACLE_HOME = /u03_clone/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = sorcl11g)   
    )
  ) 
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZ2zehy7gff0kpg1swp1czZ)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u02/oracle

備庫(kù)的tnsname

PHYSICAL = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZ2zehy7gff0kpg1swp1czZ)(PORT = 1522)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = orcl11g.localdomain) 
    ) 
  )

PRIMARY = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZ2zehy7gff0kpg1swp1czZ)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = orcl11g.localdomain) 
    ) 
  ) 
注意 這里端口號(hào)和主庫(kù)的端口不應(yīng)一致,因?yàn)榇藭r(shí)環(huán)境是一個(gè)節(jié)點(diǎn)上有兩個(gè)ORACLE產(chǎn)品兩個(gè)ORACLE數(shù)據(jù)庫(kù)

2:設(shè)置DG_BROKER_START參數(shù),所有的節(jié)點(diǎn)都需要配置
2.1基本配置
alter system set db_unique_name='PRIMARY' scope=spfile;

alter system set standby_file_management ='AUTO';

alter database add standby logfile group  11 '/u02/oracle/oradata/orcl11g/standbylog/standby11.log' size 50m;
alter database add standby logfile group  12 '/u02/oracle/oradata/orcl11g/standbylog/standby12.log' size 50m;
alter database add standby logfile group  13 '/u02/oracle/oradata/orcl11g/standbylog/standby13.log' size 50m;
alter database add standby logfile group  14 '/u02/oracle/oradata/orcl11g/standbylog/standby14.log' size 50m;

2.2主庫(kù)歸檔
shutdown immediate;
startup mount;
alter system set log_archive_dest_1='location=/u02/oracle/oradata/orcl11g/archivelog';
alter database archivelog;


主庫(kù)啟動(dòng)broker
show parameter dg_broker_start;
!ps -ef |grep dmon 
alter system set dg_broker_start=TRUE;
!ps -ef |grep dmon 

alter database open;
在主庫(kù)重新生成pfile create pfile from spfile;

2.3 備份主庫(kù):

  a.rman target /

  b.backup database;

2.4 在備庫(kù)上克隆主庫(kù):
     
  a.cd /u02/oracle/product/11.2.0/dbhome_1/dbs
      cp initorcl11g.ora orapworcl11g /u03_clone/oracle/product/11.2.0/dbhome_1/dbs/
     
      修改備庫(kù)pfile上的db_unique_name=PHYSICAL
   因?yàn)樵谕慌_(tái)機(jī)器的不同位置安裝了另一個(gè)oracle軟件,所以還要設(shè)置數(shù)據(jù)存放位置的參數(shù)
   su - oracle
   mkdir -p /u03_clone/oracle/oradata/orcl11g/archivelog
   mkdir -p /u03_clone/oracle/flash_recovery_area
   mkdir -p /u03_clone/oracle/admin/orcl11g/adump
     
      要在同一臺(tái)機(jī)器上啟動(dòng)另一產(chǎn)品的數(shù)據(jù)庫(kù),必須先啟動(dòng)不同的listener,然后啟動(dòng)倆數(shù)據(jù)庫(kù)
      同一機(jī)器上啟動(dòng)不同產(chǎn)品的listener 必須要有TNS_ADMIN
      打開窗口1 export TNS_ADMIN=/u02/oracle/product/11.2.0/dbhome_1/network/admin        主庫(kù)listener
      打開窗口2 export TNS_ADMIN=/u03_clone/oracle/product/11.2.0/dbhome_1/network/admin   備庫(kù)listener 

  b.啟動(dòng)數(shù)據(jù)庫(kù)到nomount:
      在窗口1
      export ORACLE_SID=orcl11g
   echo $ORACLE_SID
      sqlplus / as sysdba
   startup open pfile=/u02/oracle/product/11.2.0/dbhome_1/dbs
   在窗口2
   export ORACLE_SID=sorcl11g
   echo $ORACLE_SID
      sqlplus / as sysdba
   startup nomount pfile=/u03_clone/oracle/product/11.2.0/dbhome_1/dbs

   在備庫(kù)還得再創(chuàng)建一個(gè)空的新的數(shù)據(jù)庫(kù)
   CREATE DATABASE orcl11g
     USER SYS IDENTIFIED BY oracle
     USER SYSTEM IDENTIFIED BY oracle
     LOGFILE GROUP 1 ('/u03_clone/oracle/oradata/orcl11g/redo01.log') SIZE 100M BLOCKSIZE 512,
             GROUP 2 ('/u03_clone/oracle/oradata/orcl11g/redo02.log') SIZE 100M BLOCKSIZE 512,
             GROUP 3 ('/u03_clone/oracle/oradata/orcl11g/redo03.log') SIZE 100M BLOCKSIZE 512
     MAXLOGFILES 5
     MAXLOGMEMBERS 5
     MAXLOGHISTORY 1
    MAXDATAFILES 100
    CHARACTER SET ZHS16GBK
    NATIONAL CHARACTER SET AL16UTF16
    EXTENT MANAGEMENT LOCAL
    DATAFILE '/u03_clone/oracle/oradata/orcl11g/system01.dbf' SIZE 325M REUSE
    SYSAUX DATAFILE '/u03_clone/oracle/oradata/orcl11g/sysaux01.dbf' SIZE 325M REUSE
    DEFAULT TABLESPACE users
        DATAFILE '/u03_clone/oracle/oradata/orcl11g/users01.dbf'
        SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
    DEFAULT TEMPORARY TABLESPACE tempts1
        TEMPFILE '/u03_clone/oracle/oradata/orcl11g/temp01.dbf'
        SIZE 20M REUSE
    UNDO TABLESPACE undotbs
        DATAFILE '/u03_clone/oracle/oradata/orcl11g/UNDOTBS_01.dbf'
        SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
  
  c.登陸rman:

rman target sys/oracle@PRIMARY auxiliary system/oracle@PHYSICAL
rman target system/oracle@PHYSICAL auxiliary system/oracle@PRIMARY
  d.開始克隆:

 duplicate target database for standby nofilenamecheck from active database;

查看日志
vi /u03_clone/oracle/diag/rdbms/physical/orcl11g/trace/alert_orcl11g.log
vi /u02/oracle/diag/rdbms/primary/orcl11g/trace/alert_orcl11g.log

startup nomount pfile=/u03_clone/oracle/product/11.2.0/dbhome_1/dbs/initorcl11g.ora
startup upgrade pfile=/u03_clone/oracle/product/11.2.0/dbhome_1/dbs/initorcl11g.ora
startup open pfile=/u03_clone/oracle/product/11.2.0/dbhome_1/dbs/initorcl11g.ora
@/u03_clone/oracle/product/11.2.0/dbhome_1/rdbms/admin/catalog.sql
@/u03_clone/oracle/product/11.2.0/dbhome_1/rdbms/admin/catproc.sql

@/u03_clone/oracle/product/11.2.0/dbhome_1/rdbms/admin/catupgrd.sql

startup open pfile=/u02/oracle/product/11.2.0/dbhome_1/dbs/initorcl11g.ora


測(cè)試遠(yuǎn)程連接備庫(kù)
export ORACLE_SID=sorcl11g
export ORACLE_HOME=/u03_clone/oracle/product/11.2.0/dbhome_1
export TNS_ADMIN=/u03_clone/oracle/product/11.2.0/dbhome_1/network/admin/
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

cd $ORACLE_HOME/bin
./sqlplus / as sysdba
./lsnrctl status
startup open pfile=/u03_clone/oracle/product/11.2.0/dbhome_1/dbs/initorcl11g.ora
./sqlplus system/welcome1@PHYSICAL
rman target /

測(cè)試遠(yuǎn)程連接主庫(kù)
export ORACLE_SID=orcl11g
export ORACLE_HOME=/u02/oracle/product/11.2.0/dbhome_1
export TNS_ADMIN=/u02/oracle/product/11.2.0/dbhome_1/network/admin/

cd $ORACLE_HOME/bin
./sqlplus / as sysdba
./lsnrctl status
startup open pfile=/u02/oracle/product/11.2.0/dbhome_1/dbs/initorcl11g.ora
./sqlplus system/oracle@PRIMARY

2.5:創(chuàng)建并啟用配置文件
dgmgrl sys/oracle@PRIMARY 
create configuration dgc as primary database is PRIMARY connect identifier is PRIMARY;
add database PHYSICAL as connect identifier is PHYSICAL maintained as physical;
enable configuration
show configuration [verbose];

這次遇到的問題是在安裝了oracle軟件后,再創(chuàng)建數(shù)據(jù)庫(kù)時(shí),特別最后執(zhí)行catproc.sql時(shí)怎么都執(zhí)行不完,還老報(bào)錯(cuò)
關(guān)閉數(shù)據(jù)庫(kù)重啟open后,還說要按upgrade方式打開數(shù)據(jù)庫(kù),顯然catproc.sql未完全執(zhí)行完,最后發(fā)現(xiàn)原因?qū)嶋H是數(shù)據(jù)庫(kù)內(nèi)存不足
在運(yùn)行腳本時(shí),速度很慢,而且free -mh查看內(nèi)存只有幾十M可用,于是,關(guān)閉占用內(nèi)存的應(yīng)用,重新執(zhí)行腳本很快就執(zhí)行好了,而且
可以順利啟動(dòng)到open狀態(tài)
http://blog.51cto.com/ylw6006/686900

在備庫(kù)上克隆主庫(kù)

https://www.cnblogs.com/vijayfly/archive/2015/12/16/5051614.html oracle11G使用DGbroker創(chuàng)建dg

解決問題
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
這個(gè)錯(cuò)誤最大的問題是 一個(gè)節(jié)點(diǎn)上安了兩個(gè)oracle軟件,在啟動(dòng)第二個(gè)oracle軟件時(shí),環(huán)境變量ORACLE_HOME還是第一個(gè)oracle軟件的
,所以啟動(dòng)數(shù)據(jù)庫(kù)時(shí),是在環(huán)境變量1的基礎(chǔ)上啟動(dòng)的數(shù)據(jù)庫(kù),造成啟動(dòng)時(shí)數(shù)據(jù)庫(kù)會(huì)用到錯(cuò)誤的環(huán)境變量ORACLE_HOME,最終啟動(dòng)雖然
正常,但遠(yuǎn)程連接時(shí)就報(bào)上面的錯(cuò)誤。sqlplus system/oracle@PHYSICAL
另外出現(xiàn) shared memory realm does not exist的原因還有可能是虛擬機(jī)物理內(nèi)存不足造成

Service "PHYSICAL.localdomain" has 1 instance(s).
  Instance "sorcl11g", status READY, has 1 handler(s) for this service...
Service "PRIMARY" has 1 instance(s).
  Instance "orcl11g", status UNKNOWN, has 1 handler(s) for this service...
Service "PRIMARY_DGMGRL" has 1 instance(s).
  Instance "orcl11g", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl11g.localdomain" has 1 instance(s).
  Instance "orcl11g", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl11gXDB.localdomain" has 1 instance(s).
  Instance "sorcl11g", status READY, has 1 handler(s) for this service...

Service "PHYSICAL" has 1 instance(s).
  Instance "sorcl11g", status UNKNOWN, has 1 handler(s) for this service...
Service "PHYSICAL_DGMGRL" has 1 instance(s).
  Instance "sorcl11g", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl11g.localdomain" has 1 instance(s).
  Instance "sorcl11g", status UNKNOWN, has 1 handler(s) for this service...
 

“dgbroker搭建的完整過程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI