安装之前必须取消环境变量,免得麻烦。
unset ORACLE_HOME
unset ORACLE_BASE
unset ORACLE_SID
unset TNS_ADMIN
echo $ORACLE_HOME
chown oracle:oinstall /u01
chown oracle:oinstall /u01/app
chown oracle:oinstall /u01/app/oracle
chown oracle:oinstall /u01/app/oraInventory
fdisk -l /dev/sda查看磁盘大小
oracleasm init 加载内核模块
oracleasm configure -i 进行配置asm
oracle
asmadmin
y y
oracleasm createdisk ASMVOL01 /dev/sda5
oracleasm createdisk ASMVOL02 /dev/sda6
oracleasm createdisk ASMVOL03 /dev/sda7
oracleasm createdisk ASMVOL04 /dev/sda8
oracleasm createdisk ASMVOL05 /dev/sda3
oracleasm-discover
service oracleasm restart
以oracle身份运行
cd /stage/grid/
./runInstaller
skip--standalone server--DATA-normal-勾选前4个盘--密码统一设置 oracle_4U--next--只看到SWAP报错后才算正常,继续运行,接着会弹出一个脚本要求执行,以ROOT身份去执行下才可继续运行。
ps -aux asm 安装为完后查看磁盘组
cd /u01/app/oracle/product/11.2.0/grid/bin/asmca 创建一个新的FRA磁盘组
create --name FRA-- External--ok
装数据库软件
unset ORACLE_HOME
unset ORACLE_BASE
unset ORACLE_SID
unset TNS_ADMIN
echo $ORACLE_HOME
cd /stage/database/
./runInstaller
skip--install database--安装企业版--install--弹出一个脚本以root身份去执行(设置下一些文件目录权限)
安装数据库
/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbca 数据库配置助手
next--create--general.....--rcat.example.com--(图形页面)--ASM--数据区浏览选择+DATA盘组--要求输入ASM密码oracle_4U--specity(生产环境不勾选)--浏览选择+FRA盘组 大小跟真实大小尽量接近,设置6000会提示超出按提示设置最大即可--sample实例方案--字符集选AL32UT8--next
general purpose or transcation processing 通用的,大部分选这个
custom database此选项建库是其他两个模板的3倍以上那么长
data warehouse 数据仓库,连接数少但是进去把杂乱无章的模型进行运算翻个底朝天(大数据分析)
小提示:如果有录制模板脚本,则脚本(包括默认3个模板)都是存放在
/u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates
管理数据库选项manager temptables可以录制已有的数据库模板或者模板+数据
装完数据库后设置环境变量
vim .bash_profile
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=rcat
export PATH=$ORACLE_HOME/bin:$PATH:/u01/app/oracle/product/11.2.0/grid/bin
export TNS_ADMIN=/u01/app/oracle/product/11.2.0/grid/network/admin
export NLS_LANG="Simplified Chinese_china".AL32UTF8
然后注销当前oracle用户重新登陆使其生效。
如果有录制脚本的一些介绍:
cd /u01/app/oracle/admin/rcat/scripts
*rcat.sh 建一些目录,并调用脚本
*rcat.sql
set verify off 进行替换变量时候是否提示
host ......./orapwrcat生成口令文件,是执行操作系统命令(除了sys所有用户的密码存在数据字典上,sys其实也是在字典里,但是如果没开库,则无法连上数据库)
host ...../srvctl 注册集群站
*CloneRmanRestore.sql 没有参考价值的文件
*CloneDBCreation.sql 将来改数据库名的时候可以用到这个脚本来参考
定制建库的话有3个create脚本做完就基本可以了,后面不需要在做。
crs_stat -t 如果未启动则以下命令启动
crsctl start has
crsctl start res ora.orcl.db
小提示:
1、netstat -ntpl 3938端口是代理功能,和图形页面1158是结合的,有了3938,图形页面才有数据。
2、数据库实例名区分大小写!!!!
3、文件系统的恢复区
{ORACLE_BASE}/flash_recovery_area
4、crsctl delete res ora.rcat.db 删除crs_stat -t中的东西
题外话:由于本人不小心建错ASM了,故需要重新配置ASM,附上步骤
Step 1: 保证使用ASM的数据库事先已经用RMAN做了备份
Step 2: 关闭ASM实例
Step3: 使用dd命令清除ASM磁盘上的元数据
Step 4: 重建ASM磁盘组
Step 5: 恢复数据库
[@more@]
这个事件中,不能mount ASM磁盘组,也就不能启动使用这些磁盘组的数据库,可能在mount ASM磁盘组的时候报下列错误:
sql> startup mount
ORA-15032: not all alterations performed
ORA-15063: diskgroup "" lacks quorum of 2 PST disks; 0 found
错误可能由于下列原因导致:
a)操作系统不能访问ASM磁盘。
b) ASM实例上没有正确设置asm_diskstring参数。
c)磁盘上的 ASM元数据被覆盖或者崩溃了。
如果已经验证了操作系统可以使用正确的权限访问磁盘,asm_diskstring参数也是正确设置的,仍看到这个错误或者其他的错误,意味着ASM元数据崩溃了。那么就需要重建ASM实例和磁盘组:
Step 1: 保证使用ASM的数据库事先已经用RMAN做了备份
Step 2: 关闭ASM实例
Step3: 使用dd命令清除ASM磁盘上的元数据
Step 4: 重建ASM磁盘组
Step 5: 恢复数据库
Step 1: 保证使用ASM的数据库事先已经用RMAN做了备份
RMAN备份的例子:
1). 连接到rman
rman nocatalog target /
RMAN> backup device type disk format '/u03/backup/%U' database plus archivelog;
RMAN> backup device type disk format '/u03/backup/ctrlf_%U' current controlfile;
3). 手动拷贝spfile,例如:
CREATE PFILE='/u03/app/oracle/product/10.1.0/dbs/init.ora' FROM SPFILE='/+DATA/V10FJ/spfile.ora';
Step 2: 关闭ASM实例
使用sqlplus or srvctl (RAC)关闭数据库实例和ASM实例:
sqlPLUS Example:
export ORACLE_SID=+ASM
sqlplus '/ as sysdba'
sql> shutdown immediate
export ORACLE_SID=orcl
sqlplus '/ as sysdba'
sql> shutdown immediate
SRVCTL (RAC) Example:
srvctl stop asm -n
srvctl stop asm -n
srvctl stop database -d
Step3: 使用dd命令清除ASM磁盘上的元数据
在打算重建ASM实例和磁盘组之前,必须清除ASM的所有元数据,例如:
dd if=/dev/zero of=/dev/rdsk/c1t4d0s4 bs=8192 count=12800
or
dd if=/dev/zero of=/dev/rdsk/c1t4d0s4 bs=4096 count=12800
Step 4: 重建ASM磁盘组
例如:
export ORACLE_SID=+ASM
sqlplus '/ as sysdba'
sql> startup nomount
sql> create diskgroup data disk '/dev/rdsk/c1t4d0s4';
sql> shutdown immediate
sql> startup mount
Step 5: 恢复数据库
1). 使用step 1拷贝的pfile启动实例
export ORACLE_SID=orcl
sqlplus '/ as sysdba'
sql> startup nomount pfile=init.ora
$>rman target /
RMAN> restore controlfile from '/u03/backup/ctrlf_'; -- where is the unique string generated
by %U.
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open resetlogs;
3). 连接到ASM实例,得到controlfile文件名,例如:
export ORACLE_SID=+ASM
sqlplus '/ as sysdba'
sql> select name,alias_directory from v$asm_alias;
4). 编辑 init.ora改变control_files参数指向 ASM v$asm_alias视图中的name标识。
5). 重建spfile,例如:
sql> create spfile='+DATA/V10FJ/spfileV10FJ.ora'
from pfile='/u03/app/oracle/product/10.1.0/dbs/pfile.out';
6).关闭、使用新创建的spfile重启实例。
7). 如果还有其他的数据库,重复STEP 5。
原文链接:https://www.f2er.com/oracle/212872.html