Loading... ## 1. 概述 > **此文说明的是数据库在文件系统中的手动创建** > **有时候因为环境的缘故不能使用图形界面或者不能使用DBCA的静默方式来创建一个新库,那么这个时候可以考虑使用CREATE DATABASE SQL命令行来创建数据库,该方式是一种手动建库方式,使用此种命令行手动创建数据库的优点是:可以用脚本来创建数据库。 另外OCM的考试中要求我们用CREATE DATABASE来创建数据库。当然在使用脚本创建数据库时,在建立数据字典视图和安装标准的PL/SQL程序包时,必须先建立一个可以操作的数据库。** **11GR2** [Creating a Database with the CREATE DATABASE Statement](https://https://docs.oracle.com/cd/E18283_01/server.112/e17120/create003.htm) ## 2. 创建过程 ### 2.1 确保环境变量正确 ```powershell [oracle@orclasm ~]$ env | grep ORACLE ORACLE_SID=orcl ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 ``` ### 2.2 创建密码文件 ```bash orapwd file=$ORACLE_HOME/dbs/orapworcl password=xxxx force=y ``` ### 2.3 初始化参数文件 ```powershell # 初始化参数文件有个模板例子 init.ora # 可以根据这个模板创建initmynewdb.ora,如orcl的一般是initorcl.ora [oracle@orclasm dbs]$ ls hc_orcl.dat init.ora lkORCL orapworcl # 创建参数文件 [oracle@orclasm dbs]$ cat initmynewdb.ora db_name=mynewdb memory_target=1G # 原模板参数 [oracle@orclasm dbs]$ cat init.ora db_name='ORCL' memory_target=1G processes = 150 audit_file_dest='<ORACLE_BASE>/admin/orcl/adump' audit_trail ='db' 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_tablespace='UNDOTBS1' # You may want to ensure that control files are created on separate physical devices control_files = (ora_control1, ora_control2) compatible ='11.2.0' ``` ### 2.4 创建数据库文件目录 ```powershell [oracle@orclasm dbs]$ mkdir -p /u01/app/oracle/oradata/mynewdb # Oracle建议日志文件等放在不同目录,以作备份 [oracle@orclasm dbs]$ mkdir -p /u01/logs/my [oracle@orclasm dbs]$ mkdir -p /u02/logs/my ``` ### 2.5 启动数据库到nomount状态 > **在该环境下,我们的控制文件尚未生成,实例至多也只能加载到NOMOUNT状态** ```sql_more [oracle@orclasm dbs]$ sqlplus / as sysdba SQL> startup nomount # 如果参数文件没有在默认路径下,可以在后面指定 # 如 startup nomount pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initmynewdb.ora' ``` ### 2.6 创建数据库 #### 2.6.1 方式一 ```sql CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512, GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M 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/mynewdb/system01.dbf' SIZE 325M REUSE SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE users DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; ``` #### 2.6.2 方式二 ```sql -- 可以在参数文件指定DB_CREATE_FILE_DEST后,用更简短的语句创建 [oracle@orclasm dbs]$ cat initmynewdb.ora db_name=mynewdb memory_target=1G DB_CREATE_FILE_DEST='/u01/app/oracle/oradata' [oracle@orclasm dbs]$ sqlplus / as sysdba SQL> startup nomount SQL> create database mynewdb charactor set al32utf8 extent management local; -- 也可以附加临时、undo、user等表空间 SQL> create database mynewdb charactor set al32utf8 extent management local DEFAULT TEMPORARY TABLESPACE temp UNDO TABLESPACE undotbs1 DEFAULT TABLESPACE users; ``` ### 2.7 创建数据字典视图 ```sql -- 使用sysdba权限的用户 SQL> @?/rdbms/admin/catalog.sql SQL> @?/rdbms/admin/catproc.sql SQL> @?/rdbms/admin/utlrp.sql # 使用system权限的用户 SQL> @?/sqlplus/admin/pupbld.sql -- 当然也可以编译这个目录下其他的视图 ``` ## 3. 静默创建监听 ```powershell # 创建完成后,此时并没有监听,可以UI或编辑监听文件或静默创建 [oracle@orclasm ~]$ netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp ``` ## 4. 数据库的删除 ```powershell # 将数据库处于MOUNT RESTRICT状态 SQL> alter system enable restricted session; System altered. SQL> drop database; ``` 最后修改:2022 年 04 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏