手工创建和删除RAC DB

最简单的方法就是使用dbca来生产建库的脚本,然后手工执行这些脚本。具体过程如下

1,手工创建相关目录和环境变量

#!/bin/sh

OLD_UMASK=`umask`

umask 0027

mkdir -p $ORACLE_BASE/admin/hrdb/adump

mkdir -p $ORACLE_BASE/admin/hrdb/dpdump

mkdir -p $ORACLE_BASE/admin/hrdb/hdump

mkdir -p $ORACLE_BASE/admin/hrdb/pfile

mkdir -p $ORACLE_BASE/cfgtoollogs/dbca/hrdb

umask ${OLD_UMASK}

ORACLE_SID=hrdb1; export ORACLE_SID

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1; export ORACLE_HOME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

PATH=$ORACLE_HOME/bin:$PATH; export PATH

是否使用数据库自动启动,这里设置为false

echo You should Add this entry in the /etc/oratab:
hrdb: /u01/app/oracle/product/11.2.0/dbhome_1:N

 

2,创建参数文件、密码文件

密码文件
$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwhrdb1 force=y
参数文件$ORACLE_HOME/dbs/inithrdb1.ora

*.db_name='orcl'

*.cluster_database=FALSE

*.db_create_file_dest='+DATA'

*.db_recovery_file_dest='+FRA'

*.db_recovery_file_dest_size=1024M

*.memory_max_target=200M

*.remote_listener='cluster01-scan:1521'

orcl1.instance_number=1

orcl2.instance_number=2

orcl1.thread=1

orcl2.thread=2

orcl2.undo_tablespace='UNDOTBS2'

orcl1.undo_tablespace='UNDOTBS1'

*.control_files='+DATA/orcl/controlfile/current.275.850740049','+FRA/orcl/controlfile/current'

 

启动到nomount状态

sqlplus "/as sysdba"

startup nomount pfile="$ORACLE_HOME/dbs/inithrdb1.ora";

 

3,开始建库

CREATE DATABASE "hrdb"   (可以不带参数,然后手工创建UNDO和TEMP Tablespace)

MAXINSTANCES 32

MAXLOGHISTORY 1

MAXLOGFILES 192

MAXLOGMEMBERS 3

MAXDATAFILES 1024

DATAFILE SIZE 700M AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE SIZE 600M AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE SIZE 20M AUTOEXTEND ON NEXT  640K MAXSIZE UNLIMITED

SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE SIZE 1024M AUTOEXTEND ON NEXT  5120K MAXSIZE UNLIMITED

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

LOGFILE GROUP 1  SIZE 512M,

GROUP 2  SIZE 512M,

USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY manager;
4,参数文件中添加控制文件选项

hrdb1>column ctl_files NEW_VALUE ctl_files;

hrdb1>select concat('control_files=''', concat(replace(value, ', ', ''','''), '''')) ctl_files from v$parameter where name ='control_files';

CTL_FILES

----------------------------------------------------------------------------------------------

control_files='+DATA/hrdb/controlfile/current.388.791301537','+FRA/hrdb/controlfile/current.361.791301537'

host echo &ctl_files >> $ORACLE_HOME/dbs/inithrdb1.ora;

 

5,创建数据字典

connect / as sysdba;

spool /tmp/CreateDBCatalog.log append

@?/rdbms/admin/catalog.sql;

@?/rdbms/admin/catblock.sql;

@?/rdbms/admin/catproc.sql;

@?/rdbms/admin/catoctk.sql;

@?/rdbms/admin/owminst.plb;

spool off

connect "SYSTEM"/"oracle"

spool /tmp/system.log append

@?/sqlplus/admin/pupbld.sql;

@?/sqlplus/admin/help/hlpbld.sql helpus.sql;

spool off
6,创建spfile,存放于asm磁盘

create spfile='+DATA/hrdb/spfilehrdb.ora' FROM pfile='$ORACLE_HOME/dbs/inithrdb1.ora';

cp $ORACLE_HOME/dbs/inithrdb1.ora  $ORACLE_HOME/dbs/inithrdb1.ora.bak

echo "SPFILE='+DATA/hrdb/spfilehrdb.ora'" > $ORACLE_HOME/dbs/inithrdb1.ora
7,psu升级,重新编译

spool /tmp/postDBCreation.log append

@?/rdbms/admin/catbundle.sql psu apply;

select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;

execute utl_recomp.recomp_serial();

select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;
8,重新启动,从spfile文件启动,修改为归档模式

shutdown immediate;

connect / as SYSDBA

startup mount;

alter database archivelog;

alter database open;

 

 


 

单实例的数据库已经正常启动了,如果是rac数据库,还需要以下过程

9、添加log file和undo

--添加log thread 2

ALTER DATABASE ADD LOGFILE THREAD 2

GROUP 3  SIZE 512M,

GROUP 4  SIZE 512M;

ALTER DATABASE ENABLE PUBLIC THREAD 2;  

-- undo tablespace

CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE SIZE 1024M AUTOEXTEND ON NEXT  5120K MAXSIZE UNLIMITED;

10,CreateClustDBViews

spool $ORACLE_BASE/admin/epmdb/scripts/CreateClustDBViews.log append

@?/rdbms/admin/catclust.sql;

spool off

 

11,修改rac相关的参数

alter system set cluster_database=true scope=spfile;

alter system set remote_listener="dtydb-scan2:1521" scope=spfile;

alter system set instance_number=2 scope=spfile sid='hrdb2';

alter system set thread=2 scope=spfile sid='hrdb2';

alter system set undo_tablespace=UNDOTBS2 scope=spfile sid='hrdb2';

也可通过修改pfile文件完成

epmdb1.instance_number=1

epmdb2.instance_number=2

epmdb1.thread=1

epmdb2.thread=2

epmdb1.undo_tablespace=UNDOTBS1

epmdb2.undo_tablespace=UNDOTBS2

create spfile='+DATA/hrdb/spfilehrdb.ora' FROM pfile ='/tmp/init.ora';

 

12,删除默认的spfile,让数据库从pfile启动,实际从asm上的spfile上启动

shutdown immediate;

mv spfilehrdb1.ora spfilehrdb1.ora.bak

db2上

vi inithrdb2.ora

SPFILE='+DATA/hrdb/spfilehrdb.ora'
13,注册到crs中

/oracle/11.2.0/grid/bin/setasmgidwrap  o=$ORACLE_HOME/bin/oracle

$ORACLE_HOME/bin/srvctl add database -d hrdb -o $ORACLE_HOME -p +DATA/hrdb/spfilehrdb.ora -n hrdb -a DATA,FRA

 

$ORACLE_HOME/bin/srvctl add instance -d hrdb -i hrdb1 -n dtydb3

$ORACLE_HOME/bin/srvctl add instance -d hrdb -i hrdb2 -n dtydb4

$ORACLE_HOME/bin/srvctl enable database -d hrdb;

$ORACLE_HOME/bin/srvctl start database -d hrdb;

 

 

Drop database: 10g版本以上,数据库要处于mount状态,RESTRICTED 模式下
SQL> startup mount exclusive restrict;
SQL> drop database;

说明:
1,10g以上才能有drop database命令
2,The DROP DATABASE command deletes these files from operating system.
* Datafiles
* Online Redo Log Files
* Controlfiles
* SPFILE (if it exists)

The DROP DATABASE command does not delete the following files:
* init.ora (text version of the Oracle initialization file)
* password file
* entries in listener files
* entries in oratab file
3,win NT环境下文件不会自动删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值