Oracle 11.2.0.4.0 Dataguard部署和日常维护(1)-数据库安装篇
本次测试环境
系统版本 | CentOS release 6.8 | |
主机名 | ec2t-userdata-01 | ec2t-userdata-01 |
IP地址 | 10.189.102.118 | 10.189.100.195 |
数据库版本 | 11.2.0.4.0 | |
数据库角色 | primary | standby |
Oracle 11.2.0.4.0下载地址
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_1of7.zip
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_2of7.zip
1. 系统配置
1.1. CentOS系统安装,IP,主机名配置(略),swap大小是内存的1.5~2倍
1.2. 在主从节点创建oracle用户和dba组
# groupadd -r -g oinstall
# groupadd -r -g dba
# useradd -r -u -g oinstall -G dba,root oracle -d /home/oracle
# echo "" | passwd --stdin oracle
1.3. 在主从节点创建oracle安装目录并赋予oracle用户和组权限
# mkdir -p /u01/app/oracle/product/11.2./db_1
# chown -R oracle:oinstall /u01/
# chmod -R /u01/
1.4. 在主从节点配置oracle用户环境变量
- 主节点
$ cat /home/oracle/.bash_profile
# .bash_profile # Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs export TMP=/tmp
export TMPDIR=/tmp
export TEMP=/tmp
export ORACLE_HOSTNAME=ec2t-userdata-
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2./db_1
export PATH=/usr/bin:/usr/sbin:/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORACLE_SID=userdata
export ORACLE_UNQNAME=userdata1
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib:/lib:/usr/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
- 从节点
$ cat /home/oracle/.bash_profile
# .bash_profile # Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs export TMP=/tmp
export TMPDIR=/tmp
export TEMP=/tmp
export ORACLE_HOSTNAME=ec2t-userdata-
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2./db_1
export PATH=/usr/bin:/usr/sbin:/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORACLE_SID=userdata
export ORACLE_UNQNAME=userdata2
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib:/lib:/usr/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 1.5. 在主从节点关闭防火墙和selinux
# service iptables stop
# chkconfig iptables off
# setenforce
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
1.5. 在主从节点优化内核参数
# tail -n /etc/sysctl.conf
fs.aio-max-nr =
fs.file-max =
kernel.shmall =
kernel.shmmax = 12884901888
kernel.shmmni =
kernel.sem =
net.ipv4.ip_local_port_range =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_default =
net.core.wmem_max =
# sysctl -p
1.6. 在主从节点优化oracle用户资源使用限制
1.6.1. 修改用户限制配置文件,增加如下参数
# tail -n /etc/security/limits.conf
oracle soft nproc
oracle hard nproc
oracle soft nofile
oracle hard nofile
oracle soft stack
oracle hard stack
1.6.2 修改login配置文件,将用户限制加入到登录验证模块
# grep 'pam_limits.so' /etc/pam.d/login
session required /lib64/security/pam_limits.so
1.6.3 编辑环境变量文件,增加对oracle用户的限制
# tail -n /etc/profile
if [ $USER = "oracle" ];
then
if [ $SHELL = "/bin/ksh" ];
then
ulimit -p
ulimit -n
else
ulimit -u -n
fi
fi
1.7. 在主从节点安装依赖软件包
1.7.1 在主从节点安装oracle依赖包
yum -y install binutils-* compat-libstdc++-* elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libgomp-* libstdc++-* libstdc++-devel* make-* sysstat-* unixODBC-* libXp ksh readline readline-devel
1.7.2 在主从节点安装rlwrap包(用以解决sqlplus不能查询历史命令和后退键不能回退的问题)
# wget http://download.openpkg.org/components/cache/rlwrap/rlwrap-0.42.tar.gz
# tar -zxf rlwrap-0.42.tar.gz
# cd rlwrap-0.42
# ./configure
# make
# make install
# echo "alias sqlplus='rlwrap sqlplus'" >> /home/oracle/.bashrc
# echo "alias rman='rlwrap rman'" >> /home/oracle/.bashrc
1.8. 配置主从节点oracle用户之间的信任关系
- 主节点
$ ssh-keygen -t rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ ssh-copy-id oracle@ec2t-userdata-
- 从节点
$ ssh-keygen -t rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ ssh-copy-id oracle@ec2t-userdata-
2. 在主节点安装oracle数据库(静默方式)
2.1. 安装oracle数据库软件
2.1.1. 创建oracle数据库软件安装的应答文件
$ unzip p13390677_112040_Linux-x86-64_1of7.zip ; unzip p13390677_112040_Linux-x86-64_2of7.zip
$ cp database/response/db_install.rsp /home/oracle/
$ cat /home/oracle/db_install.rsp | grep -v "#"|grep -v "^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=ec2t-userdata-
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2./db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.,oracle.oraolap:11.2.0.4.,oracle.rdbms.dm:11.2.0.4.,oracle.rdbms.dv:11.2.0.4.,oracle.rdbms.lbac:11.2.0.4.,oracle.rdbms.rat:11.2.0.4.
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=false
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=userdata
oracle.install.db.config.starterdb.SID=userdata
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
从节点需要修改"ORACLE_HOSTNAME"的值
2.1.2. 安装oracle数据库软件
$ ./database/runInstaller -silent -responseFile /home/oracle/db_install.rsp
Starting Oracle Universal Installer... Checking Temp space: must be greater than MB. Actual MB Passed
Checking swap space: must be greater than MB. Actual MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017--19_09--46AM. Please wait ...[oracle@ec2t-userdata- u01]$ [WARNING] [INS-] The Central Inventory is located in the Oracle base.
CAUSE: The Central Inventory is located in the Oracle base.
ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
You can find the log of this install session at:
/u01/app/oracle/oraInventory/logs/installActions2017--19_09--46AM.log
The installation of Oracle Database 11g was successful.
Please check '/u01/app/oracle/oraInventory/logs/silentInstall2017-06-19_09-28-46AM.log' for more details. As a root user, execute the following script(s):
. /u01/app/oracle/oraInventory/orainstRoot.sh
. /u01/app/oracle/product/11.2./db_1/root.sh Successfully Setup Software. $ cat /u01/app/oracle/oraInventory/logs/silentInstall2017--19_09--46AM.log | grep "OverallStatus:"
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
2.1.3. 重新打开一个session窗口以root用户执行以上两个脚本
# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world. Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete.
# /u01/app/oracle/product/11.2./db_1/root.sh
Check /u01/app/oracle/product/11.2./db_1/install/root_ec2t-userdata-02_2017--19_09--.log for the output of root script
# cat /u01/app/oracle/product/11.2./db_1/install/root_ec2t-userdata-02_2017--19_09--.log
Performing root user operation for Oracle 11g The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2./db_1
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ... Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Finished product-specific root actions.
2.1.4. 安装软件错误解决
- 内核参数值设置不正确
INFO: *********************************************
INFO: OS Kernel Parameter: shmmax: This is a prerequisite condition to test whether the OS kernel parameter "shmmax" is properly set.
INFO: Severity:IGNORABLE
INFO: OverallStatus:VERIFICATION_FAILED
INFO: -----------------------------------------------
INFO: Verification Result for Node:ec2t-userdata-01
INFO: Expected Value:Current=1909168128; Configured=1909168128
INFO: Actual Value:Current=536870912; Configured=536870912
INFO: Error Message:PRVG-1201 : OS kernel parameter "shmmax" does not have proper value on node "ec2t-userdata-01" [Expected = "1909168128" ; Current = "536870912"; Configured = "536870912"].
INFO: Cause: Kernel parameter configured value does not meet the requirement.
修改shmmax为Expected的值
- 缺少pdksh-5.2.14包
INFO: *********************************************
INFO: Package: pdksh-5.2.14: This is a prerequisite condition to test whether the package "pdksh-5.2.14" is available on the system.
INFO: Severity:IGNORABLE
INFO: OverallStatus:VERIFICATION_FAILED
INFO: -----------------------------------------------
INFO: Verification Result for Node:ec2t-userdata-01
INFO: Expected Value:pdksh-5.2.14
INFO: Actual Value:missing
INFO: Error Message:PRVF-7532 : Package "pdksh" is missing on node "ec2t-userdata-01"
INFO: Cause: A required package is either not installed or, if the package is a kernel module, is not loaded on the specified node.
下载安装即可
# wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
# rpm -ivh pdksh-5.2.-.el5_8..x86_64.rpm --nodeps
2.2. 安装oracle监听程序
2.2.1. 创建oracle监听程序安装的应答文件
$ cp ./database/response/netca.rsp /home/oracle/
2.2.2. 创建oracle监听程序
$ netca /silent /responsefile /home/oracle/netca.rsp Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/11.2./db_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is
2.3. 安装oracle数据库
2.2.1. 创建oracle数据库安装的应答文件
$ cp ./database/response/dbca.rsp /home/oracle/
$ cat /home/oracle/dbca.rsp | grep -v "#"|grep -v "^$"
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "userdata"
SID = "userdata"
TEMPLATENAME = "General_Purpose.dbc"
DATAFILEDESTINATION = "/u01/app/oracle/oradata"
RECOVERYAREADESTINATION="/u01/app/oracle/flash_recovery_area"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET= "UTF8"
[createTemplateFromDB]
SOURCEDB = "myhost: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"
2.2.2. 修改引用的通用模板General_Purpose.dbc
$ cp $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc.bak
$ cat $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc
<?xml version = '1.0'?>
<DatabaseTemplate name="General_Purpose" description=" " version="11.2.0.0.0">
<CommonAttributes>
<option name="OMS" value="false"/>
<option name="JSERVER" value="true"/>
<option name="SPATIAL" value="true"/>
<option name="IMEDIA" value="true"/>
<option name="XDB_PROTOCOLS" value="true">
<tablespace id="SYSAUX"/>
</option>
<option name="ORACLE_TEXT" value="true">
<tablespace id="SYSAUX"/>
</option>
<option name="SAMPLE_SCHEMA" value="false"/>
<option name="CWMLITE" value="true">
<tablespace id="SYSAUX"/>
</option>
<option name="EM_REPOSITORY" value="true">
<tablespace id="SYSAUX"/>
</option>
<option name="APEX" value="true"/>
<option name="OWB" value="true"/>
<option name="DV" value="false"/>
</CommonAttributes>
<Variables/>
<CustomScripts Execute="false"/>
<InitParamAttributes>
<InitParams>
<initParam name="db_name" value=""/>
<initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
<initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
<initParam name="compatible" value="11.2.0.4.0"/>
<initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
<initParam name="processes" value="600"/>
<initParam name="undo_tablespace" value="UNDOTBS1"/>
<initParam name="control_files" value="("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl")"/>
<initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
<initParam name="db_recovery_file_dest" value="{ORACLE_BASE}/fast_recovery_area"/>
<initParam name="audit_trail" value="db"/>
<initParam name="memory_target" value="2048" unit="MB"/>
<initParam name="db_block_size" value="8" unit="KB"/>
<initParam name="open_cursors" value="600"/>
<initParam name="db_recovery_file_dest_size" value="4096" unit="MB"/>
<initParam name="JAVA_JIT_ENABLED" value="FALSE"/>
</InitParams>
<MiscParams>
<databaseType>MULTIPURPOSE</databaseType>
<maxUserConn>20</maxUserConn>
<percentageMemTOSGA>40</percentageMemTOSGA>
<customSGA>false</customSGA>
<archiveLogMode>false</archiveLogMode>
<initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
</MiscParams>
<SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
</InitParamAttributes>
<StorageAttributes>
<DataFiles>
<Location>{ORACLE_HOME}/assistants/dbca/templates/Seed_Database.dfb</Location>
<SourceDBName>seeddata</SourceDBName>
<Name id="1" Tablespace="SYSTEM" Contents="PERMANENT" Size="740" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf</Name>
<Name id="2" Tablespace="SYSAUX" Contents="PERMANENT" Size="470" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf</Name>
<Name id="3" Tablespace="UNDOTBS1" Contents="UNDO" Size="25" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf</Name>
<Name id="4" Tablespace="USERS" Contents="PERMANENT" Size="5" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf</Name>
</DataFiles>
<TempFiles>
<Name id="1" Tablespace="TEMP" Contents="TEMPORARY" Size="20">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf</Name>
</TempFiles>
<ControlfileAttributes id="Controlfile">
<maxDatafiles>200</maxDatafiles>
<maxLogfiles>16</maxLogfiles>
<maxLogMembers>3</maxLogMembers>
<maxLogHistory>1</maxLogHistory>
<maxInstances>8</maxInstances>
<image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
<image name="control02.ctl" filepath="{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/"/>
</ControlfileAttributes>
<RedoLogGroupAttributes id="1">
<reuse>false</reuse>
<fileSize unit="KB">102400</fileSize>
<Thread>1</Thread>
<member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
</RedoLogGroupAttributes>
<RedoLogGroupAttributes id="2">
<reuse>false</reuse>
<fileSize unit="KB">102400</fileSize>
<Thread>1</Thread>
<member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
</RedoLogGroupAttributes>
<RedoLogGroupAttributes id="3">
<reuse>false</reuse>
<fileSize unit="KB">102400</fileSize>
<Thread>1</Thread>
<member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
</RedoLogGroupAttributes>
</StorageAttributes>
</DatabaseTemplate>
2.2.3. 安装oracle数据库
$ dbca -silent -responseFile /home/oracle/dbca.rsp
Enter SYS user password: 888888
Enter SYSTEM user password: 888888
Copying database files
% complete
% complete
% complete
% complete
Creating and starting Oracle instance
% complete
% complete
% complete
% complete
% complete
% complete
% complete
% complete
% complete
Completing Database Creation
% complete
% complete
% complete
% complete
% complete
% complete
% complete
% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/userdata/userdata.log" for further details.
2.2.4. 在glogin.sql文件增加常用的配置
$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
--
-- Copyright (c) 1988, 2011, Oracle and/or its affiliates.
-- All rights reserved.
--
-- NAME
-- glogin.sql
--
-- DESCRIPTION
-- SQL*Plus global login "site profile" file
--
-- Add any SQL*Plus commands here that are to be executed when a
-- user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
-- This script is automatically run
--
define_editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 200
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr(global_name,1,decode( dot,0,length(global_name),dot-1) ) global_name from (select global_name,instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
set sqlprompt"_user'@'_connect_identifier>"
column member format a50
column name format a50
column DEST_NAME format a30
column DESTINATION format a40
column FILE_NAME format a60 -- Used by Trusted Oracle
COLUMN ROWLABEL FORMAT A15 -- Used for the SHOW ERRORS command
COLUMN LINE/COL FORMAT A8
COLUMN ERROR FORMAT A65 WORD_WRAPPED -- Used for the SHOW SGA command
COLUMN name_col_plus_show_sga FORMAT a24
COLUMN units_col_plus_show_sga FORMAT a15
-- Defaults for SHOW PARAMETERS
COLUMN name_col_plus_show_param FORMAT a36 HEADING NAME
COLUMN value_col_plus_show_param FORMAT a30 HEADING VALUE -- Defaults for SHOW RECYCLEBIN
COLUMN origname_plus_show_recyc FORMAT a16 HEADING 'ORIGINAL NAME'
COLUMN objectname_plus_show_recyc FORMAT a30 HEADING 'RECYCLEBIN NAME'
COLUMN objtype_plus_show_recyc FORMAT a12 HEADING 'OBJECT TYPE'
COLUMN droptime_plus_show_recyc FORMAT a19 HEADING 'DROP TIME' -- Defaults for SET AUTOTRACE EXPLAIN report
-- These column definitions are only used when SQL*Plus
-- is connected to Oracle 9.2 or earlier.
COLUMN id_plus_exp FORMAT 990
COLUMN parent_id_plus_exp FORMAT 990
COLUMN plan_plus_exp FORMAT a60
COLUMN object_node_plus_exp FORMAT a8
COLUMN other_tag_plus_exp FORMAT a29
COLUMN other_plus_exp FORMAT a44
3. 在从节点安装oracle数据库(静默方式,仅需要安装数据库软件和创建监听)
步骤略,参考步骤2
4. 主库状态查看
- 查看数据库信息
column PLATFORM_NAME format a20
column NAME format a10
column DB_UNIQUE_NAME format a15
column OPEN_MODE format a10
column LOG_MODE format a15
column FLASHBACK_ON format a15
select PLATFORM_NAME,NAME,DBID,DB_UNIQUE_NAME,CREATED,OPEN_MODE,CURRENT_SCN,LOG_MODE,FORCE_LOGGING,FLASHBACK_ON from v$database; PLATFORM_NAME NAME DBID DB_UNIQUE_NAME CREATED OPEN_MODE CURRENT_SCN LOG_MODE FORCE_LOG FLASHBACK_ON
-------------------- ---------- ---------- --------------- ------------------- ---------- ----------- --------------- --------- ---------------
Linux x86 64-bit USERDATA 3890525137 userdata 2017-06-21 19:44:17 READ WRITE 995537 NOARCHIVELOG NO NO column INSTANCE_NAME format a10
column HOST_NAME format a20
column VERSION format a15
column STATUS format a10
column DATABASE_STATUS format a10
column INSTANCE_ROLE format a20
column ACTIVE_STATE format a10
select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS,DATABASE_STATUS,INSTANCE_ROLE,ACTIVE_STATE from v$instance; INSTANCE_N HOST_NAME VERSION STARTUP_TIME STATUS DATABASE_S INSTANCE_ROLE ACTIVE_STA
---------- -------------------- --------------- ------------------- ---------- ---------- -------------------- ----------
userdata ec2t-userdata-01 11.2.0.4.0 2017-06-21 19:47:53 OPEN ACTIVE PRIMARY_INSTANCE NORMAL
- 查看数据库控制文件信息
column NAME format a60
select NAME,STATUS,TO_CHAR(block_size*file_size_blks,'999,999,999,999') File_Size from v$controlfile; NAME STATUS FILE_SIZE
------------------------------------------------------------ --------------------- ------------------------------------------------
/u01/app/oracle/oradata/userdata/control01.ctl 11,108,352
/u01/app/oracle/fast_recovery_area/userdata/control02.ctl 11,108,352
- 查看联机重做日志文件信息
column SIZE_MB format 999
column STATUS format a10
column TYPE format a10
column NEXT_CHANGE# format 999999999999999
SELECT l.thread#,
lf.group#,
lf.member,
TRUNC(l.bytes/1024/1024) AS size_mb,
l.status,
l.archived,
lf.type,
lf.is_recovery_dest_file AS rdf,
l.sequence#,
l.first_change#,
l.next_change#
FROM v$logfile lf
JOIN v$log l ON l.group# = lf.group#
ORDER BY l.thread#,lf.group#, lf.member;
THREAD# GROUP# MEMBER SIZE_MB STATUS ARCHIVED TYPE RDF SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- -------------------------------------------------- ------- ---------- --------- ---------- --------- ---------- ------------- ----------------
1 1 /u01/app/oracle/oradata/userdata/redo01.log 100 CURRENT NO ONLINE NO 4 990659 281474976710655
1 2 /u01/app/oracle/oradata/userdata/redo02.log 100 INACTIVE NO ONLINE NO 2 929203 961989
1 3 /u01/app/oracle/oradata/userdata/redo03.log 100 INACTIVE NO ONLINE NO 3 961989 990659
- 查看数据文件使用信息
SET PAGESIZE 100
SET LINESIZE 265
COLUMN tablespace_name FORMAT A20
COLUMN file_name FORMAT A50
COLUMN USED_PCT FORMAT A20 SELECT df.tablespace_name,
df.file_name,
df.size_mb,
f.free_mb,
df.max_size_mb,
f.free_mb + (df.max_size_mb - df.size_mb) AS max_free_mb,
RPAD(' '|| RPAD('X',ROUND((df.max_size_mb-(f.free_mb + (df.max_size_mb - df.size_mb)))/max_size_mb*10,0), 'X'),11,'-') AS used_pct
FROM (SELECT file_id,
file_name,
tablespace_name,
TRUNC(bytes/1024/1024) AS size_mb,
TRUNC(GREATEST(bytes,maxbytes)/1024/1024) AS max_size_mb
FROM dba_data_files) df,
(SELECT TRUNC(SUM(bytes)/1024/1024) AS free_mb,
file_id
FROM dba_free_space
GROUP BY file_id) f
WHERE df.file_id = f.file_id (+)
ORDER BY df.tablespace_name,
df.file_name;
TABLESPACE_NAME FILE_NAME SIZE_MB FREE_MB MAX_SIZE_MB MAX_FREE_MB USED_PCT
-------------------- -------------------------------------------------- ------- ---------- ----------- ----------- --------------------
SYSAUX /u01/app/oracle/oradata/userdata/sysaux01.dbf 520 31 32767 32278 ----------
SYSTEM /u01/app/oracle/oradata/userdata/system01.dbf 740 0 32767 32027 ----------
UNDOTBS1 /u01/app/oracle/oradata/userdata/undotbs01.dbf 75 66 32767 32758 ----------
USERS /u01/app/oracle/oradata/userdata/users01.dbf 5 3 32767 32765 ----------
- 查看表空间使用信息
column TABLESPACE_NAME format a15 SELECT UPPER(F.TABLESPACE_NAME) "TABLESPACE_NAME",
D.TOT_GROOTTE_MB "TABLESPACE_SIZE(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "TABLESPACE_USED(M)",
F.TOTAL_BYTES "TABLESPACE_FREE(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "USED_PERCENTAGE",
F.MAX_BYTES "MAX_BLOCK(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
TABLESPACE_NAME TABLESPACE_SIZE(M) TABLESPACE_USED(M) TABLESPACE_FREE(M) USED_PERCENTAGE MAX_BLOCK(M)
--------------- ------------------ ------------------ ------------------ ------------------------ ------------
SYSAUX 520 488.87 31.13 94.01% 31.13
SYSTEM 740 739.12 .88 99.88% .88
UNDOTBS1 75 9.5 65.5 12.67% 44
USERS 5 1.31 3.69 26.20% 3.69
- 查看每个数据文件的IO信息
COLUMN 'File Name' FORMAT A50
COLUMN 'Blocks Read' FORMAT 999999
COLUMN 'Blocks Writen' FORMAT 999999
COLUMN 'Total I/O' FORMAT 999999 SELECT Substr(d.name,1,50) "File Name",
f.phyblkrd "Blocks Read",
f.phyblkwrt "Blocks Writen",
f.phyblkrd + f.phyblkwrt "Total I/O"
FROM v$filestat f,
v$datafile d
WHERE d.file# = f.file#
ORDER BY f.phyblkrd + f.phyblkwrt DESC; File Name Blocks Read Blocks Writen Total I/O
-------------------------------------------------- ----------- ------------- ---------
/u01/app/oracle/oradata/userdata/system01.dbf 20333 2525 22858
/u01/app/oracle/oradata/userdata/sysaux01.dbf 7586 8515 16101
/u01/app/oracle/oradata/userdata/undotbs01.dbf 22 5480 5502
/u01/app/oracle/oradata/userdata/users01.dbf 34 0 34
Oracle 11.2.0.4.0 Dataguard部署和日常维护(1)-数据库安装篇的更多相关文章
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(3)-Datauard监控篇
1. v$database 查看当前数据库的角色和保护模式 primary库查看 column NAME format a10 column PROTECTION_MODE format a2 ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(2)-Datauard部署篇
1. primary库设置dataguard相关参数 1.1. 强制primay库在任何状态下必须记录日志 SYS@userdata>select FORCE_LOGGING from v$ ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(4)-Datauard Gap事件解决篇
Oracle dataguard主库删除备库需要的归档时,会导致gap事情的产生,或者备库由于网络或物理故障原因,倒是备库远远落后于主库,都会产生gap事件,本例模拟gap事件的产生以及处理. 1. ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(6)-Active Dataguard篇
1. 检查主备库的状态 on primary column DATABASE_ROLE format a20 column OPEN_MODE format a15 column PROTECTION ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(5)-Datauard 主备切换和故障转移篇
1. dataguard主备切换 1.1. 查看当前主备库是否具备切换条件 on slave select sequence#,first_time,next_time,archived,appl ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(7) - Dataguard Flashback篇
1. 设置备库的闪回目录 show parameter db_recovery_file; NAME TYPE VALUE ------------------------------------ - ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(6)-Dataguard Snapshot篇
1. 检查当前主备库同步状态 on primary select ads.dest_id,max(sequence#) "Current Sequence", max(log_se ...
- Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇
由于来源身份不明.越权操作.密码泄露.数据被窃.违规操作等因素都可能会使运营的业务系统面临严重威胁,一旦发生事故,如果不能快速定位事故原因,运维人员往往就会背黑锅.几种常见的运维人员背黑锅场景:1)由 ...
- Gitlab 快速部署及日常维护 (二)
一.概述 上一篇我们将Gitlab的安装部署和初始化设置部分全部讲解完成了,接下来我们介绍Gitlab在日常工作中常遇见的问题进行梳理说明. 二.Gitlab的安装和维护过程中常见问题 1.Gitla ...
随机推荐
- Kylin web界面 知识点介绍
Big Data Era: 1.More and more data becoming available on Hadoop2.Limitations in existing Business ...
- mybatis结合mysql批量操作及查询sql
MySQL数据库 批量操作主要使用的是Mybatis的foreach,遍历参数列表执行相应的操作,所以批量插入/更新/删除的写法是类似的,只是SQL略有区别而已.MySql批量操作需要数据库连接配置a ...
- 【NOI 2009】诗人小G
Problem Description 小 \(G\) 是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用 ...
- springboot整合druid数据库连接池并开启监控
简介 Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目.Druid支持所有JDBC兼容的数据库,包括Oracle.MySQL.Derby.PostgreSQL.SQL Server.H2 ...
- 前端分页插件bootstrapPaginator的使用
引入bootstrap-paginator.js <table class="table table-striped table-bordered table-hover dataT ...
- vi/vim 基本使用方法
vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...
- nginx的使用教程
一.基本概念 1.1 正向代理和反向代理 (参考文档:https://www.cnblogs.com/hafiz/p/7233306.html) 假设我们给定客户端A.代理服务器B.以及最终服务器C ...
- main方法介绍
main方法是程序的入口点,程序从这里开始,也是从这里结束. 执行过程:程序在执行编译的过程中先找main方法,然后执行main‘{’下的第一行代码,以此执行,如果遇到main方法中有调用其他的方法时 ...
- [原][osg][osgEarth]EarthManipulator关于oe漫游器的handle部分解读以及修改(仿照谷歌,修改oe漫游器中focal(视角切换)功能 续 二)
bool EarthManipulator::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa) ...
- PostegreSQL模板数据库
模板数据库 模板数据库就是创建新database时,PostgreSQL会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件. CREATE DATABASE 实际上是通过拷贝一个现有的 ...