数据库手动建库

Posted wangchanzgheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库手动建库相关的知识,希望对你有一定的参考价值。

1:配置环境变量(以下是本实验环境的配置)

[[email protected] ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=PROD
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

[[email protected] ~]$
--使环境变量生效,当然,如果重新登陆或者做过切换等操作,此步骤可以省略
[[email protected] ~]$ . .bash_profile
[[email protected] ~]$

2:创建密码文件(作用:允许远程用密码方式以sysdba身份登陆数据库,密码文件可有可无)

--切换到存放密码文件的目录
[[email protected] ~]$ cd $ORACLE_HOME/dbs
[[email protected] dbs]$ pwd
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[[email protected] dbs]$ ls
init.ora
[[email protected] dbs]$
--生成密码文件的命令,帮助信息
[[email protected] dbs]$ orapwd
Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>

where
file - name of password file (required),
password - password for SYS will be prompted if not specified at command line,
entries - maximum number of distinct DBA (optional),
force - whether to overwrite existing file (optional),
ignorecase - passwords are case-insensitive (optional),
nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).

There must be no spaces around the equal-to (=) character.
[[email protected] dbs]$
--生成密码文件,密码文件的格式:orapw+SID
[[email protected] dbs]$ orapwd file=orapwPROD password=oracle
[[email protected] dbs]$ ls
init.ora orapwPROD
[[email protected] dbs]$

3:生成pfile文件

[[email protected] dbs]$ pwd
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[[email protected] dbs]$ ls
init.ora orapwPROD
[[email protected] dbs]$ cat init.ora |grep -v ^#|grep -v ^$ > initPROD.ora
[[email protected] dbs]$ ls
init.ora initPROD.ora orapwPROD
[[email protected] dbs]$
[[email protected] dbs]$ vi initPROD.ora

db_name=‘PROD‘
memory_target=1G
processes = 150
--注意要校验此路径,在下一步创建目录时,要相同
audit_file_dest=‘/u01/app/oracle/admin/prod/adump‘
#audit_trail =‘db‘
--把审计的参数注释掉,去掉这个功能,DBCA建库,默认情况下是启用的。
db_block_size=8192
db_domain=‘‘
--关闭快速恢复区
#db_recovery_file_dest=‘<ORACLE_BASE>/flash_recovery_area‘
--关闭快速恢复区,如果需要开启的话,随时可以通过修改参数来完成。
#db_recovery_file_dest_size=2G
--注释掉诊断的参数,数据库创建好后,这个参数会自动启用
#diagnostic_dest=‘<ORACLE_BASE>‘
dispatchers=‘(PROTOCOL=TCP) (SERVICE=ORCLXDB)‘
open_cursors=300
remote_login_passwordfile=‘EXCLUSIVE‘
--undo表空间名称,在创建数据库时名称要匹配上
undo_tablespace=‘UNDOTBS1‘
--修改控制文件的名字及位置
control_files = (/u01/app/oracle/oradata/PROD/ora_control1.ctl,/u01/app/oracle/oradata/PROD/ora_control2.ctl)
compatible =‘11.2.0‘

4:根据pfile创建目录adump目录和控制文件目录

[[email protected] ~]$ mkdir -p $ORACLE_BASE/admin/prod/adump
[[email protected] ~]$ mkdir -p $ORACLE_BASE/oradata/PROD/
[[email protected] ~]$

5:通过pfile创建spfile

--查看已存在的pfile文件initPROD.ora
[[email protected] ~]$ cd $ORACLE_HOME/dbs
[[email protected] dbs]$ ls
init.ora initPROD.ora orapwPROD
[[email protected] dbs]$
--验证当前环境变量
[[email protected] dbs]$ echo $ORACLE_SID
PROD
[[email protected] dbs]$
--通过pfile创建spfile
[[email protected] dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Feb 28 16:34:35 2014

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to an idle instance.

SQL> create spfile from pfile;

File created.

SQL> !ls
init.ora initPROD.ora orapwPROD spfilePROD.ora

SQL>

6:数据库启动到nomount(默认情况下,oracle会使用spfile启动数据库)

[[email protected] dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Feb 28 17:20:28 2014

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 671089544 bytes
Database Buffers 390070272 bytes
Redo Buffers 5517312 bytes
SQL>
SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ----------------------------------------------------------
spfile string /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilePROD.ora
SQL>
SQL> select status from v$instance;

STATUS
------------
STARTED

SQL>

7:编写创建数据库脚本
Oracle11g官方文档:
Administrator’s Guide->2 Creating and Configuring an Oracle Database->Step 9: Issue the CREATE DATABASE Statement
1)修改数据库名称及相关口令
2)由于是测试环境,所以,可以将日志文件改为1个成员,把成员大小改为10M
3)修改users表空间大小及undo表空间大小
4)修改undo表空间的名称,要与pfile文件中的名称相同

CREATE DATABASE PROD
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 (‘/u01/app/oracle/oradata/PROD/redo01a.log‘) SIZE 10M BLOCKSIZE 512,
GROUP 2 (‘/u01/app/oracle/oradata/PROD/redo02a.log‘) SIZE 10M BLOCKSIZE 512,
GROUP 3 (‘/u01/app/oracle/oradata/PROD/redo03a.log‘) SIZE 10M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE ‘/u01/app/oracle/oradata/PROD/system01.dbf‘ SIZE 325M REUSE
SYSAUX DATAFILE ‘/u01/app/oracle/oradata/PROD/sysaux01.dbf‘ SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE ‘/u01/app/oracle/oradata/PROD/users01.dbf‘
SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE ‘/u01/app/oracle/oradata/PROD/temp01.dbf‘
SIZE 20M REUSE
UNDO TABLESPACE UNDOTBS1
DATAFILE ‘/u01/app/oracle/oradata/PROD/undotbs01.dbf‘
SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

8:创建数据库(数据库此时的状态应该是nomount,直接在sqlplus下执行创建数据库脚本即可)

SQL> CREATE DATABASE PROD
2 USER SYS IDENTIFIED BY oracle
3 USER SYSTEM IDENTIFIED BY oracle
4 LOGFILE GROUP 1 (‘/u01/app/oracle/oradata/PROD/redo01a.log‘) SIZE 10M BLOCKSIZE 512,
5 GROUP 2 (‘/u01/app/oracle/oradata/PROD/redo02a.log‘) SIZE 10M BLOCKSIZE 512,
6 GROUP 3 (‘/u01/app/oracle/oradata/PROD/redo03a.log‘) SIZE 10M BLOCKSIZE 512
7 MAXLOGFILES 5
8 MAXLOGMEMBERS 5
9 MAXLOGHISTORY 1
10 MAXDATAFILES 100
11 CHARACTER SET US7ASCII
12 NATIONAL CHARACTER SET AL16UTF16
13 EXTENT MANAGEMENT LOCAL
14 DATAFILE ‘/u01/app/oracle/oradata/PROD/system01.dbf‘ SIZE 325M REUSE
15 SYSAUX DATAFILE ‘/u01/app/oracle/oradata/PROD/sysaux01.dbf‘ SIZE 325M REUSE
16 DEFAULT TABLESPACE users
17 DATAFILE ‘/u01/app/oracle/oradata/PROD/users01.dbf‘
18 SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
19 DEFAULT TEMPORARY TABLESPACE tempts1
20 TEMPFILE ‘/u01/app/oracle/oradata/PROD/temp01.dbf‘
21 SIZE 20M REUSE
22 UNDO TABLESPACE UNDOTBS1
23 DATAFILE ‘/u01/app/oracle/oradata/PROD/undotbs01.dbf‘
24 SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

Database created.

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL>
--查看相关参数
SQL> show parameter control_files

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/oracle/oradata/PROD/o
ra_control1.ctl, /u01/app/orac
le/oradata/PROD/ora_control2.c
tl
SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/dbhome_1/dbs/spfilePROD.ora
SQL>

9:创建字典表及工具包

--必执行脚本
SQL> conn / as sysdba
SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql
SQL> conn system/oracle
SQL> @?/sqlplus/admin/pupbld.sql
--可选脚本
SQL> conn / as sysdba
SQL> @?/rdbms/admin/catblock.sql
SQL> @?/rdbms/admin/catoctk.sql
SQL> @?/rdbms/admin/owminst.plb










































































































































































以上是关于数据库手动建库的主要内容,如果未能解决你的问题,请参考以下文章

手动建库(未实践)

Oracle安装卸载任务

手动创建Oracle实例

mysql学习之旅-数据库自动备份和手动恢复

004.MySQL主库手动复制至从库

12c RAC 添加删除ora.dbanme.db资源