使用 CREATE DATBASESQL 语句是一种更手动的创建数据库的方法。如果使用该CREATE DATABASE语句,则必须先完成其他操作,然后才能拥有可操作的数据库。这些操作包括在数据字典表上构建视图和安装标准 PL/SQL 包。您可以通过运行准备好的脚本来执行这些操作。
mkdir -p /u01/app/oracle/admin/PROD3/adump 创建跟踪文件
mkdir -p /u01/app/oracle/fast_recovery_area/PROD3 创建快速恢复目录,rman配置文件默认路径
mkdir -p /u01/app/oracle/oradata/PROD3 创建数据文件,日志文件等目录
export ORACLE_SID=PROD3
在启动 SQL*Plus 之前,必须设置环境变量,或者至少验证它们是否设置正确。
例如,在大多数平台上,ORACLE_SID必须ORACLE_HOME设置。此外,建议将PATH变量设置为包括ORACLE_HOME/bin 目录。在 UNIX 和 Linux 平台上,您必须手动设置这些环境变量。
例如:
在Oracle用户下的.bash_profile添加以下内容
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=PROD3
export PATH=$ORACLE_HOME/bin:$PATH
保存后source .bash_profile 生效
当一个 Oracle 实例启动时,它会读取一个初始化参数文件。该文件可以是文本文件,可以使用文本编辑器创建和修改,也可以是二进制文件,由数据库创建和动态修改。首选的二进制文件称为服务器参数文件。在此步骤中,您将创建一个文本初始化参数文件。在后面的步骤中,您将从文本文件创建一个服务器参数文件。
如:
db_name='PROD3'
memory_target=420M
processes = 150
audit_file_dest='/u01/app/oracle/admin/PROD3/adump'
audit_trail ='db'
db_block_size=8192
db_domain='us.oracle.com' #如果没要求,为了规范,看看PROD1/PROD2的域名,照着写! db_recovery_file_dest='/u01/app/oracle/fast_recovery_area/PROD3'—注意改成fast_recovery_area,
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=PROD3XDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace=''# 修改为空,用下面建库的脚本进行匹配!否则这个名字就需要和建库脚本中的一致!
control_files = ('/u01/app/oracle/oradata/PROD3/control01.ctl','/u01/app/oracle/fast_recovery_area/PROD3/control02.ctl')
compatible ='11.2.0'
cd $ORACLE_HOME/dbs
orapwd file=orapwPROD3 password=oracle entries=5;
sqlplus / as sysdba;
create spfile from pfile;
sql> startup nomount;
sql> alter system set DB_CREATE_FILE_DEST=‘/u01/app/oracle/oradata/PROD3’
**注意:**如果用建库脚本2,则需要设置这个;建库脚本1则不用!
以下语句创建数据库mynewdb。此数据库名称必须与DB_NAME初始化参数文件中的参数一致
cd /home/oracle/scripts
vi createdb.sql
建库脚本1–
CREATE DATABASE PROD3
USER SYS IDENTIFIED BY oracle—密码按照考题写,这个与参数文件中的密码文件要一致!
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/PROD3/redo01a.log') SIZE 100M BLOCKSIZE 512 REUSE,
GROUP 2 ('/u01/app/oracle/oradata/PROD3/redo02a.log') SIZE 100M BLOCKSIZE 512 REUSE,
GROUP 3 ('/u01/app/oracle/oradata/PROD3/redo03a.log') SIZE 100M BLOCKSIZE 512 REUSE
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/PROD3/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/PROD3/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/PROD3/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE/ temp--------注意要修改,否则加密表空间的那道题会报错!
TEMPFILE '/u01/app/oracle/oradata/PROD3/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/PROD3/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
/
建库脚本2
CREATE DATABASE PROD3
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE temp
UNDO TABLESPACE undotbs1
DEFAULT TABLESPACE users;
/
执行创建数据库脚本
sql> @/home/oracle/createdb.sql
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/utlrp.sql ----这句是新增的,文档没有,清理无效对象
conn system/oracle —最后这个脚本,是在system下运行的
@?/sqlplus/admin/pupbld.sql