老铁们,大家好,相信还有很多朋友对于高效数据库管理:Oracle数据库管理员实战指南和的相关问题不太懂,没关系,今天就由我来为大家分享分享高效数据库管理:Oracle数据库管理员实战指南以及的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
# df -h 检查操作系统内核架构# /bin/isainfo -kv 检查网络# 主机名
# ifconfig a
#Ping服务器的hosts文件内容:
#公共IP
172.16.10.1 BXDB1
172.16.10.2 BXDB2
#私有IP
172.16.1.3 BXDB1-priv
172.16.1.4 BXDB2-priv
#VIP
172.16.10.7 BXDB1-vip
172.16.10.8 BXDB2-vip
扫描
172.16.10.9 BXDB-scan 检查节点时间确保同步# date
2.2 用户的准备工作(BXDB1和BXDB2相同)
修改UDP参数$ vi /etc/rc2.d/S99ndd 添加
ndd -set /dev/udp udp_xmit_hiwat 65536
ndd -set /dev/udp udp_recv_hiwat 65536 创建所需组/usr/sbin/groupadd -g 1000 oinstall
/usr/sbin/groupadd -g 1100 asmadmin
/usr/sbin/groupadd -g 1200 dba
/usr/sbin/groupadd -g 1201 操作
/usr/sbin/groupadd -g 1300 asmdba
/usr/sbin/groupadd -g 1301 asmoper 创建所需的用户# mkdir -p /export/home/grid
# useradd -u 1100 -g oinstall -G dba,asmadmin,asmdba,asmoper -d /export/home/grid -s /usr/bin/bash grid
# mkdir -p /export/home/oracle
# useradd -u 1101 -g oinstall -G asmdba,dba,oper -d /export/home/oracle -s /usr/bin/bash oracle 修改新用户的密码。密码1qaz.oracle
# 密码网格
# passwd oracle修改环境变量Grid user
#su-网格
$vi.profileadd
# ORACLE_SID(在节点2上写入ORACLE_SID=+ASM2)
ORACLE_SID=+ASM1;导出ORACLE_SID
ORACLE_BASE=/oracle/app/grid;导出ORACLE_BASE
ORACLE_HOME=/oracle/app/11.2.0/grid;导出ORACLE_HOME
路径=.${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
路径=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
导出路径
NLS_LANG=AMERICAN_AMERICA.UTF8;导出NLS_LANG
umask 022oracle 用户
#su-oracle
$vi.profileadd
# ORACLE_SID(在节点2上写入ORACLE_SID=boss2)
ORACLE_SID=老板1;导出ORACLE_SID
ORACLE_BASE=/oracle/app/oracle;导出ORACLE_BASE
ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1;导出ORACLE_HOME
路径=.${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
路径=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
导出路径
NLS_LANG=AMERICAN_AMERICA.UTF8;导出NLS_LANG
umask 022 修改系统参数(root用户)# vi /etc/system add
设置noexec_user_stack=1
设置semsys:seminfo_semmni=100
设置semsys:seminfo_semmns=1024
设置semsys:seminfo_semmsl=256
设置semsys:seminfo_semvmx=23767
设置shmsys:shminfo_shmmax=107374182400
设置shmsys:shminfo_shmmin=1
设置shmsys:shminfo_shmmni=100
设置shmsys:shminfo_shmset=10 执行
# projmod -sK "project.max-shm-memory=(privileged,100G,deny)" 默认重启服务器
配置等价以下是grid用户,oracle用户配置相同
$ chmod 755 /export/home (目录权限必须为755) 执行以下两个RAC节点
-bash-3.00$ mkdir -p ~/.ssh
-bash-3.00$ chmod 700 ~/.ssh
-bash-3.00$ /usr/bin/ssh-keygen -t 当rsa 提示输入密码时,只需将其保留为空并按Enter 键即可。使用空密码更容易。
以下仅在RAC节点1上执行
-bash-3.00$ touch ~/.ssh/authorized_keys
-bash-3.00$ ssh BXDB1 cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
-bash-3.00$ ssh BXDB2 cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
-bash-3.00$ scp ~/.ssh/authorized_keys BXDB2:ssh/authorized_keys执行以下两个RAC节点
-bash-3.00$ chmod 600 ~/.ssh/authorized_keys 测试等效性。配置成功,不提示输入密码(第一次要求输入密码是正常的)
ssh BXDB1 "日期;主机名"
ssh BXDB2 "date;hostname" 配置裸磁盘(root 用户)# 格式
可用磁盘选择:
0.c0t5000CCA03C70E8B4d0solaris
scsi_vhci/磁盘@g5000cca03c70e8b4
1.c0t5000CCA03C709A38d0solaris
scsi_vhci/磁盘@g5000cca03c709a38
2. c0t600000E00D11000000111430000D0000d0scsi_vhci/ssd@g600000e00d11000000111430000d0000
3. c0t600000E00D1100000011143000040000d0scsi_vhci/ssd@g600000e00d1100000011143000040000
4. c0t600000E00D1100000011143000060000d0scsi_vhci/ssd@g600000e00d1100000011143000060000
5. c0t600000E00D1100000011143000070000d0scsi_vhci/ssd@g600000e00d1100000011143000070000
6. c0t600000E00D1100000011143000050000d0scsi_vhci/ssd@g600000e00d1100000011143000050000
7. c0t600000E00D1100000011143000030000d0scsi_vhci/ssd@g600000e00d1100000011143000030000
8. c0t600000E00D1100000011143000020000d0scsi_vhci/ssd@g600000e00d1100000011143000020000
9. c0t600000E00D1100000011143000010000d0scsi_vhci/ssd@g600000e00d1100000011143000010000
10.c0t600000E00D1100000011143000000000d0scsi_vhci/ssd@g600000e00d1100000011143000000000
指定磁盘(输入其编号)[7]: 2
选择c0t600000E00D11000000111430000D0000d0
[磁盘已格式化]
格式
分区菜单:
0 - 更改“0”分区
1 - 更改“1”分区
2 - 更改“2”分区
3 - 更改“3”分区
4 - 更改“4”分区
5 - 更改“5”分区
6 - 更改“6”分区
7 - 更改“7”分区
select - 选择一个预定义的表
修改- 修改预定义的分区表
name - 命名当前表
print - 显示当前表
label - 将分区图和标签写入磁盘
!- 执行,然后返回
辞职
分区0
零件标签标志气缸尺寸块
0 根wm 0 0 (0/0/0) 0
输入分区ID 标签[root]:
输入分区权限标志[wm]:
输入新的起始cyl[0]:
输入分区大小[0b, 0c, 0e, 0.00mb, 0.00gb]:
分区p
当前分区表(未命名):
可用磁盘柱面总数: 254 + 2(保留柱面)
零件标签标志气缸尺寸块
0 未分配wm 0 0 (0/0/0) 0
1 交换乌0 0 (0/0/0) 0
2 备份吴0 - 253 1.98GB (254/0/0) 4161536
3 未分配wm 0 0 (0/0/0) 0
4 未分配wm 0 0 (0/0/0) 0
5 未分配wm 0 0 (0/0/0) 0
6 usr wm 0 - 253 1.98GB (254/0/0) 4161536
7 未分配wm 0 0 (0/0/0) 0
分区6
零件标签标志气缸尺寸块
6 用户wm 0 - 253 1.98GB (254/0/0) 4161536
输入分区ID 标签[usr]:
输入分区权限标志[wm]:
输入新的起始cyl[0]: 3
输入分区大小[4112384b、251c、253e、2008.00mb、1.96gb]:
分区标签
准备好标记磁盘了,继续吗? y
分区p
当前分区表(未命名):
可用磁盘柱面总数: 254 + 2(保留柱面)
零件标签标志气缸尺寸块
0 未分配wm 0 0 (0/0/0) 0
1 交换乌0 0 (0/0/0) 0
2 备份吴0 - 253 1.98GB (254/0/0) 4161536
3 未分配wm 0 0 (0/0/0) 0
4 未分配wm 0 0 (0/0/0) 0
5 未分配wm 0 0 (0/0/0) 0
6 个用户wm 3 - 253 1.96GB (251/0/0) 4112384
7 未分配wm 0 0 (0/0/0) 0
partitionquit 将格式化所有要使用的磁盘并按顺序分区。
修改磁盘权限时,如果划分磁盘时选择分配空间给分片n,则对应的分片为sn。例如磁盘为c0t600000E00D11000000111430000D0000d0,空间分配给6号分片,最终我们使用的磁盘文件名为c0t600000E00D11000000111430000D0000d0s6
chown grid:asmadmin /dev/rdsk/c0t600000E00D11000000111430000D0000d0s6
chown grid:asmadmin /dev/rdsk/c0t600000E00D1100000011143000030000d0s6
chown grid:asmadmin /dev/rdsk/c0t600000E00D1100000011143000020000d0s6
chown grid:asmadmin /dev/rdsk/c0t600000E00D1100000011143000010000d0s6
chown grid:asmadmin /dev/rdsk/c0t600000E00D1100000011143000000000d0s6
chmod 660 /dev/rdsk/c0t600000E00D11000000111430000D0000d0s6
chmod 660 /dev/rdsk/c0t600000E00D1100000011143000030000d0s6
chmod 660 /dev/rdsk/c0t600000E00D1100000011143000020000d0s6
chmod 660 /dev/rdsk/c0t600000E00D1100000011143000010000d0s6
chmod 660 /dev/rdsk/c0t600000E00D1100000011143000000000d0s6
3 安装
3.1 安装crs软件(BXDB1上)
以网格用户身份运行安装程序# xhost +
# 解压安装软件
#su-网格
$ 导出显示=客户端IP: 0.0
$ ./runInstaller
选择第一项,下一步
imgimg选择第二个高级安装,next
img添加中文
img填写SCAN信息,Cluster名称自定义,SCAN名称在hosts文件中配置。
img 添加节点
img 单击ssh 连接来配置ssh 等效项
img根据hosts文件的配置选择网卡用户
img 选项将OCR 文件放入ASM 中
img 创建ASM磁盘组,添加之前为OCR准备的裸磁盘文件,冗余模式选择external
img 设置ASM账户的密码1qaz.oracle。如果提示密码不够安全,请单击“是”。
img 选择用户组
img选择安装路径
img选择inventory目录,默认
img开始检查系统环境是否满足
img 提示不满足以下条件。这两个错误可以忽略。
img 确认并开始安装
img安装完成后,按照提示在两个节点上以root用户执行脚本。
img安装完成后,检查集群状态时出现错误。这是因为我们没有配置DNS服务器来分配VIP和SCANip,而是手动分配的。该错误可以忽略。集群软件现已安装完毕。
img
3.2 安装database软件(BXDB1上)
以网格用户身份运行安装程序# xhost +
# 解压安装软件
#su-网格
$ 导出显示=客户端IP: 0.0
$ ./runInstaller
不要选择接收安全补丁信息,如果出现提示,只需选择“是”。
img 跳过软件更新
img选择只安装数据库软件
img 选择集群模式安装
img 单击ssh 连接配置用户等效性
imgimg 添加中文
img 选择安装企业版
img 选择安装目录。由于根目录属于grid用户,因此在两个节点上手动创建该目录,并将权限和组分配给oracle用户。
mkdir -p /oracle/app/oracle
chown oracle:oinstall /oracle/app/oracle
img 选择安装软件组
img 检查系统环境是否满足安装要求
img 以下错误可以忽略
img检查正确并开始安装
img安装完成后,按照提示在两个节点上以root用户执行脚本。
img执行对应的脚本完成安装
img
3.3 创建数据库
以grid用户创建ASM磁盘组# xhost +
#su-网格
$ 导出显示=客户端IP: 0.0
$阿斯卡
创建如下所示的磁盘组,其中安装CRS软件时已经创建了CRS。
img 以oracle用户创建集群数据库# xhost +
#su-oracle
$ 导出显示=客户端IP: 0.0
$dbca
选择集群数据库
img 选择创建数据库
img 选择自定义数据库
img 根据实际情况输入数据库名称,勾选所有节点
img 选择配置EM
img 配置用户的密码。这里的密码都是1qaz.oracle。如果提示密码不够安全,请单击“是”。
img 选择数据文件存储方式,选择ASM,填写之前创建的磁盘组名称。系统将要求您输入ASMSNMP 密码。输入1qaz.oracle。
img配置快速恢复区,选择之前创建的ASM磁盘组,填写大小,这里是900g,查看激活存档
img 删除不必要的组件
img 配置内存大小并检查自动内存管理。建库后可以根据实际情况修改该值。
img配置块大小和连接数
img配置字符集,选择AL32UTF8
img默认可以选择专有模式
img配置数据文件,每个节点分配4组,redo大小改为512M
确认img正确,开始建库
img开始建立数据库
img数据库安装现已完成。
4 常用维护命令
4.1 启动和关闭集群
(1)启动集群件和集群数据库
集群系统默认自动启动。手动启动集群件的命令为:
-bash-3.00#cd /u01/app/11.2.0/grid/bin (rootuser)-bash-3.00#./crsctl start cluster也可以以grid用户执行以下命令(11.2版本不推荐)
-bash-3.00#su - grid-bash-3.00$crs_start -all启动集群数据库
-bash-3.00$su - oracle-bash-3.00$srvctl start database -d racdb (启动所有实例节点)-bash-3.00$srvctl start instance -d racdb -n racdb1 (在节点1上启动数据库实例)-bash-3.00$ 010- 59000 在节点srvctl start instance -d racdb -n racdb2 (上启动数据库实例2(2)关闭RAC集群数据库和集群软件
先关闭集群数据库
-bash-3.00$)-bash-3.00$su - oracle然后关闭集群件(root用户)
-bash-3.00$srvctl stop database -d racdb-bash-3.00#su --bash-3.00#cd /u01/app/11.2.0/grid/bin
4.2 RAC常用命令
主要使用srvctl命令来完成集群系统的维护。我们可以使用help命令来查看其用法。在oracle用户下执行srvctl -help查看帮助信息
-bash-3.00#./crsctl stop cluster-bash-3.00$su - oracle使用: srvctl[]
Commands: 启用|禁用|启动|停止|重定位|状态|添加|删除|修改|getenv|setenv|unsetenv|config
对象: 数据
base|instance|service|nodeapps|vip|asm|diskgroup|listener|srvpool|server|scan|scan_listener|oc4j|home|filesystem|gns For detailed help on each command and object and its options use: srvctl-h or srvctl-h 该命令的格式和用法都列出来了,继续查看具体用法就在命令和对象的后面加 -h 参数,这样一层一层的查看帮助就可以得到全部的使用方法而不用查看其它的资料。 -bash-3.00$srvctl add -h(给集群添加对象,比较重要的如:service, srvpool等等) -bash-3.00$srvctl remove -h(删除集群的对象) -bash-3.00$srvctl modify -h(修改集群的对象) -bash-3.00$srvctl config -h(查看集群内对象的配置信息) -bash-3.00$srvctl status -h(查看集群内对象的状态信息) -bash-3.00$srvctl relocate -h(把集群的对象重定位到其它实例节点,如oc4j, gns只在一个实例节点上有效,使用该命令可以把对象转移到其它实例节点) -bash-3.00$srvctl enable -h(把集群内已经存在的对象置于可用状态) -bash-3.00$srvctl disable -h(把集群内已经存在的对象置于不可用状态) -bash-3.00$srvctl start -h(启动集群内已经存在的对象) -bash-3.00$srvctl stop -h(停止集群内已经存在的对象) 常用的比如: ◆查看全部安装集群数据库名称 -bash-3.00$srvctl config databaseracdb ◆查看指定的集群数据库的配置信息 -bash-3.00$srvctl config database -d racdbDatabase unique name: racdb Database name: racdb Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1 Oracle user: oracle Spfile: +RACDB_DATA/racdb/spfileracdb.ora Domain: racnode.com Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: racdb Database instances: racdb1,racdb2 Disk Groups: RACDB_DATA,FRA Services: MYRAC Database is administrator managed ◆显示节点应用程序的配置 -bash-3.00$srvctl config nodeapps -a -g -s -eVIP exists.:racnode1 VIP exists.: /192.168.1.201/192.168.1.201/255.255.255.0/e1000g0 VIP exists.:racnode2 VIP exists.: /192.168.1.205/192.168.1.205/255.255.255.0/e1000g0 GSD exists. ONS daemon exists. Local port 6100, remote port 6200 eONS daemon exists. Multicast port 16717, multicast IP address 234.92.69.133, listening port 2016 ◆列出集群中所有运行的实例 -bash-3.00$sqlplus / as sysdbaSQL>col host format a10SQL>col db_status format a8SQL>col inst_name format a8SQL>SELECT inst_id, instance_number inst_no, instance_name inst_name,2parallel, status, database_status db_status, active_state state,3host_name host4FROM gv$instance5Order By inst_id;INST_ID INST_NO INST_NAM PAR STATUS DB_STATU STATE HOST 1 1 racdb1 YES OPEN ACTIVE NORMAL racnode1 2 2 racdb2 YES OPEN ACTIVE NORMAL racnode2 ◆列出所有数据文件、临时数据文件、日志文件、控制文件 SQL>set pagesize 100;(设置sqlplus的显示行数,可以一次显示100行记录) SQL>set linesize 100;(设置sqlplus的显示总宽度, 默认80,设置成100或者更宽都可以) SQL>col file_size format a9;SQL>col file# format 99999;(格式化数值类型的字段) SQL> SQL>SELECT "data_file" as file_type, file#, creation_time, status, name, to_char(bytes/(1024*1024) || "M") as file_size FROM v$datafile2union3SELECT "temp_file" as file_type, file#, creation_time, status, name, to_char(bytes/(1024*1024) || "M") as file_size FROM v$tempfile4union5SELECT "log_file" as file_type, group#, null as creation_time, type, member, null as file_size FROM v$logfile6union7SELECT "control_file" as file_type, null as file#, null as creation_time, status, name, null as file_size FROM v$controlfile;FILE_TYPE FILE# CREATION_ STATUS NAME FILE_SIZE control_file +FRA/racdb/controlfile/current.256.711918025 control_file +RACDB_DATA/racdb/controlfile/current.260.711918019 data_file 1 20-NOV-09 SYSTEM +RACDB_DATA/racdb/datafile/system.256.711917577 690M data_file 2 20-NOV-09 ONLINE +RACDB_DATA/racdb/datafile/sysaux.257.711917583 610M data_file 3 20-NOV-09 ONLINE +RACDB_DATA/racdb/datafile/undotbs1.258.711917585 90M data_file 4 20-NOV-09 ONLINE +RACDB_DATA/racdb/datafile/users.259.711917585 5M data_file 5 25-FEB-10 ONLINE +RACDB_DATA/racdb/datafile/example.264.711918155 100M data_file 6 25-FEB-10 ONLINE +RACDB_DATA/racdb/datafile/undotbs2.265.711919153 50M data_file 7 04-MAR-10 ONLINE +RACDB_DATA/racdb/datafile/ts_front.269.712715421 300M log_file 1 ONLINE +FRA/racdb/onlinelog/group_1.257.711918047 log_file 1 ONLINE +RACDB_DATA/racdb/onlinelog/group_1.261.711918033 log_file 2 ONLINE +FRA/racdb/onlinelog/group_2.258.711918069 log_file 2 ONLINE +RACDB_DATA/racdb/onlinelog/group_2.262.711918057 log_file 3 ONLINE +FRA/racdb/onlinelog/group_3.259.711919447 log_file 3 ONLINE +RACDB_DATA/racdb/onlinelog/group_3.266.711919433 log_file 4 ONLINE +FRA/racdb/onlinelog/group_4.260.711919483 log_file 4 ONLINE +RACDB_DATA/racdb/onlinelog/group_4.267.711919461 temp_file 1 25-FEB-10 ONLINE +RACDB_DATA/racdb/tempfile/temp.263.711918123 35M 18 rows selected. ◆查看asm磁盘(vasm_diskgroup)的情况 SQL>SELECT group_number group#, disk_number disk#, state, redundancy, name, failgroup, path, failgroup_type FROM v$asm_disk;GROUP# DISK# STATE REDUNDA NAME FAILGROUP PATH FAILGRO 1 0 NORMAL UNKNOWN CRS_0000 CRS_0000 /ShareDisk/crs1 REGULAR 3 2 NORMAL UNKNOWN RACDB_DATA_0002 FG1 /ShareDisk/asm1 REGULAR 3 3 NORMAL UNKNOWN RACDB_DATA_0003 FG1 /ShareDisk/asm2 REGULAR 3 0 NORMAL UNKNOWN RACDB_DATA_0000 FG2 /ShareDisk/asm3 REGULAR 3 1 NORMAL UNKNOWN RACDB_DATA_0001 FG2 /ShareDisk/asm4 REGULAR 2 0 NORMAL UNKNOWN FRA_0000 FRA_0000 /ShareDisk/fra1 REGULAR 2 1 NORMAL UNKNOWN FRA_0001 FRA_0001 /ShareDisk/fra2 REGULAR 0 8 NORMAL UNKNOWN /ShareDisk/spfile REGULAR 0 1 NORMAL UNKNOWN /ShareDisk/crs2 REGULAR SQL>SELECT group_number, name, state, type, total_mb, free_mb FROM v$asm_diskgroup;GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB 2 FRA CONNECTED NORMAL 184322 182400 1 CRS MOUNTED EXTERN 2048 1652 3 RACDB_DATA CONNECTED NORMAL 778240 773770 查看试图结构的方法 SQL>desc v$asm_disk;SQL>desc v$asm_diskgroup;【高效数据库管理:Oracle数据库管理员实战指南】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
懂Oracle DBA的,都是技术牛人!
有6位网友表示赞同!
想要成为Oracle DBA真的不容易,需要好好学习和练习。
有18位网友表示赞同!
Oracle数据库是真的很强大!
有5位网友表示赞同!
Oracle DBA的工作很忙吧,压力也不小?
有11位网友表示赞同!
想了解Oracle数据库的架构原理,去问问Oracle DBA吧。
有18位网友表示赞同!
现在越来越多的公司需要Oracle DBA了,就业前景应该很好吧?
有16位网友表示赞同!
Oracle DBA真是个非常专业的工作啊!
有10位网友表示赞同!
听说是DBA还需要很强的沟通能力才能跟开发人员交流顺利。
有10位网友表示赞同!
对数据库安全和数据恢复也很熟悉,不愧是Oracle DBA!
有8位网友表示赞同!
看看Oracle DBA的日常工作视频,感觉好厉害的样子!
有13位网友表示赞同!
学习Oracle DBA需要投入多少时间呢?
有17位网友表示赞同!
Oracle DBA证书的价值很高吗?
有20位网友表示赞同!
想知道Oracle DBA有哪些具体的技能要求?
有5位网友表示赞同!
学习Oracle DBA是一个很好的职业选择。
有16位网友表示赞同!
除了工作本身,我想知道Oracle DBA的生活状态怎么样?
有17位网友表示赞同!
Oracle DBA的工作环境是怎样的?
有11位网友表示赞同!
有哪些好的学习资料可以帮助我入门Oracle DBA呢?
有9位网友表示赞同!
Oracle DBA的薪资水平怎么样?
有5位网友表示赞同!
是否有相关的培训机构可以推荐?
有7位网友表示赞同!