上星期培训时老师给我们示范了在Linux下 oralce 10g 手工建库,自己按照老师给的文本,按步骤操作了一次,其中有些地方是遇到一些问题的主要是目录创建问题,有些目录老师在详细步骤中没有写到,但是在建库的时和备份是是要用到那些目录的,下面把详细的步骤写下来:
预备工作:
查看oralce用户的环境变量:ORACLE_BASE,ORACLE_HOME,ORACLE_SID。
在练习的时候,如果你安装数据库软件的时候同时把库给安装上了,请先把数据库删除。
数据库删除可以使用dbca工具,在oracle用户下敲命令dbca(前提是UI界面) 会弹出dbca的界面,选择删除数据库按照步骤一步步来就可以了。
也可以用命令删除,命令需要进入sqlplus
SQL> drop database;
删除数据库会花一点时间。
1)
更改环境变量里的 ORACLE_SID,可以改成你想要的,我这里改成 kyle。
在 oracle家目录中修改.bash_profile
export ORACLE_SID=kyle
然后保存退出,使环境生效。
. .bash_profile
用env |grep -i sid检查是否已经修改好
2)创建alertlog等目录(这一步我觉得 目录应该不是创建在这里,因为后面spfile里定义的目录位置不同的。我没有试过,回头还须做做实验!)
在$ORACLE_BASE下:
[oracle@ocmdb1 admin]$ mkdir -p kyle/bdump
[oracle@ocmdb1 admin]$ mkdir -p kyle/cdump
[oracle@ocmdb1 admin]$ mkdir -p kyle/udump
[oracle@ocmdb1 admin]$ mkdir -p kyle/adump
[oracle@ocmdb1 admin]$ mkdir -p kyle/bdump
[oracle@ocmdb1 admin]$ mkdir -p kyle/cdump
[oracle@ocmdb1 admin]$ mkdir -p kyle/udump
[oracle@ocmdb1 admin]$ mkdir -p kyle/adump
3)创建初始化文件,这里是copy了一份模板进行修改。
cd $ORACLE_HOME/dbs
cat init.ora |grep -v ^# |grep -v ^$>initkyle.ora
vi initkyle.ora
修改里面的db_name和controlfile
删除其他内存参数:db_block_buffers、shared_pool_size
增加sga_max_size和sga_target均为300M
cat init.ora |grep -v ^# |grep -v ^$>initkyle.ora
vi initkyle.ora
修改里面的db_name和controlfile
删除其他内存参数:db_block_buffers、shared_pool_size
增加sga_max_size和sga_target均为300M
修改如下:
db_name=kyle
control_files = (/oracle/oradata/kyle/ora_control1,/oracle/oradata/kyle/ora_control2,/oracle/oradata/kyle/control3)
文件末尾加上:
sga_max_size=300m
sga_target=300m
不然会报错:
SQL> startup nomount pfile='?/dbs/initocmdb.ora';
ORA-00371: not enough shared pool memory, should be atleast 62198988 bytes
control_files = (/oracle/oradata/kyle/ora_control1,/oracle/oradata/kyle/ora_control2,/oracle/oradata/kyle/control3)
文件末尾加上:
sga_max_size=300m
sga_target=300m
不然会报错:
SQL> startup nomount pfile='?/dbs/initocmdb.ora';
ORA-00371: not enough shared pool memory, should be atleast 62198988 bytes
用sysdba身份登录sqlplus:
sqlplus / as sysdba
执行:
SQL> startup nomount pfile='?/dbs/initkyle.ora';
退出
SQL>exit;
4)生成密码文件,创建必须的目录:
cd $ORACLE_HOME/dbs
orapwd file=orapwkyle password=kyleming entries=10
创建文件夹 数据文件目录 rman备份目录 adump bdump cdump udump目录:
su -
mkdir /oracle
chown oracle:oinstall /oracle
su - oracle
cd /oracle
mkdir -p oradata/kyle
mkdir -p kyle/adump
mkdir -p kyle/bdump
mkdir -p kyle/cdump
mkdir -p kyle/udump
mkdir rmanbak
执行:
SQL> startup nomount pfile='?/dbs/initkyle.ora';
退出
SQL>exit;
4)生成密码文件,创建必须的目录:
cd $ORACLE_HOME/dbs
orapwd file=orapwkyle password=kyleming entries=10
创建文件夹 数据文件目录 rman备份目录 adump bdump cdump udump目录:
su -
mkdir /oracle
chown oracle:oinstall /oracle
su - oracle
cd /oracle
mkdir -p oradata/kyle
mkdir -p kyle/adump
mkdir -p kyle/bdump
mkdir -p kyle/cdump
mkdir -p kyle/udump
mkdir rmanbak
5)创建spfile,修改参数:
create spfile from pfile; 再 shutdown abort,再startup nomount;
修改其他初始化参数:
alter system set undo_management=auto scope=spfile;
–后面用的create语句要求用auto管理的undo
alter system set db_create_file_dest='/oracle/oradata/kyle' scope=spfile;
–这个题目有要求
alter system set db_create_online_log_dest_1='/oracle/oradata/kyle' scope=spfile;
–这个题目有要求
alter system set job_queue_processes =5 scope=spfile;
–这个后面oem的时候要用
alter system set background_dump_dest='/oracle/kyle/bdump' scope=spfile;
alter system set core_dump_dest='/oracle/kyle/cdump' scope=spfile;
alter system set user_dump_dest='/oracle/kyle/udump' scope=spfile;
alter system set audit_file_dest='/oracle/kyle/adump' scope=spfile;
shutdown abort; startup nomount
alter system set undo_management=auto scope=spfile;
–后面用的create语句要求用auto管理的undo
alter system set db_create_file_dest='/oracle/oradata/kyle' scope=spfile;
–这个题目有要求
alter system set db_create_online_log_dest_1='/oracle/oradata/kyle' scope=spfile;
–这个题目有要求
alter system set job_queue_processes =5 scope=spfile;
–这个后面oem的时候要用
alter system set background_dump_dest='/oracle/kyle/bdump' scope=spfile;
alter system set core_dump_dest='/oracle/kyle/cdump' scope=spfile;
alter system set user_dump_dest='/oracle/kyle/udump' scope=spfile;
alter system set audit_file_dest='/oracle/kyle/adump' scope=spfile;
shutdown abort; startup nomount
6)创建数据库,创建数据库的语句可以在oracle在线参考手册找到:
CREATE DATABASE kyle
USER SYS IDENTIFIED BY kyleming
USER SYSTEM IDENTIFIED BY kyleming
LOGFILE GROUP 1 ('/oracle/oradata/kyle/redo01.log') SIZE 100M,
GROUP 2 ('/oracle/oradata/kyle/redo02.log') SIZE 100M,
GROUP 3 ('/oracle/oradata/kyle/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/oracle/oradata/kyle/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/oracle/oradata/kyle/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/oracle/oradata/kyle/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE tempts01
TEMPFILE '/oracle/oradata/kyle/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/oracle/oradata/kyle/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
执行完成后,将所有的数据文件和tempfile设置成autoextend on
alter database datafile 1 autoextend on;
alter database datafile 2 autoextend on;
alter database datafile 3 autoextend on;
alter database datafile 4 autoextend on;
alter database tempfile 1 autoextend on;
7)创建数据字典:(这个需要较长的时间)
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
8)rman备份
执行完后注意rman备份数据库,先开归档,再备份。如果rman备份的时候报错:
rman: can't open target
那是因为linxu自带的rman优先级高于$ORACLE_HOME/bin/rman了,可以通过which rman看到。
此时export PATH一下:export PATH=$ORACLE_HOME/bin:$PATH把oracle路径的优先级提高即可。
备份的话,下面的脚本基本就可以了:
rman要在归档模式下才能工作,启动开当模式
sqlplus / as sysdba
SQL>shutdown immediate ----关闭数据库
SQL>startup mount ----挂载数据库但是不开启
SQL>alter database archivelog;
SQL> alter database open;
SQL>archive log list; ---查看归档模式是否开启
SQL>exit
rman链接数据库 raman target sys/kyleming@kyle-ora -----此次我陪的tnsname文件里的服务名就是kyle-ora 。 ps 数据库还没启动监听的先启动监听 lsnrctl start 启动命令
RMAN> run{
2> backup full database
3> format '/oracle/rmanbak/full_bk1_%u%p%s.rmn'
4> include current controlfile;
5> backup archivelog all
6> format '/oracle/rmanbak/arch_bk1_%u%p%s.rmn'
7> delete input;
8> }
OK这就是实验的详细步骤!
from my baidu bloger
rman: can't open target
那是因为linxu自带的rman优先级高于$ORACLE_HOME/bin/rman了,可以通过which rman看到。
此时export PATH一下:export PATH=$ORACLE_HOME/bin:$PATH把oracle路径的优先级提高即可。
备份的话,下面的脚本基本就可以了:
rman要在归档模式下才能工作,启动开当模式
sqlplus / as sysdba
SQL>shutdown immediate ----关闭数据库
SQL>startup mount ----挂载数据库但是不开启
SQL>alter database archivelog;
SQL> alter database open;
SQL>archive log list; ---查看归档模式是否开启
SQL>exit
rman链接数据库 raman target sys/kyleming@kyle-ora -----此次我陪的tnsname文件里的服务名就是kyle-ora 。 ps 数据库还没启动监听的先启动监听 lsnrctl start 启动命令
RMAN> run{
2> backup full database
3> format '/oracle/rmanbak/full_bk1_%u%p%s.rmn'
4> include current controlfile;
5> backup archivelog all
6> format '/oracle/rmanbak/arch_bk1_%u%p%s.rmn'
7> delete input;
8> }
OK这就是实验的详细步骤!
from my baidu bloger
没有评论:
发表评论