Oracle如何实现手工建库

34次阅读
没有评论

共计 7943 个字符,预计需要花费 20 分钟才能阅读完成。

这篇文章主要为大家展示了“Oracle 如何实现手工建库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“Oracle 如何实现手工建库”这篇文章吧。

可参考官方文档操作

管理员指南
创建并配置数据库

使用建库语句创建数据库
 

1-14 为官方文档手工建库步骤,9 为建库语句

步骤 1:指定实例标识符(SID)

步骤 2:确保设置了所需的环境变量

第 3 步:选择数据库管理员身份验证方法

第 4 步:创建初始化参数文件

步骤 5 :(仅限 Windows)创建一个实例

第 6 步:连接到实例

第 7 步:创建一个服务器参数文件

第 8 步:启动实例

第 9 步:发出 CREATE DATABASE 语句

第 10 步:创建附加的表空间

第 11 步:运行脚本来构建数据字典视图

步骤 12 :(可选)运行脚本以安装其他选项

步骤 13:备份数据库。

步骤 14 :(可选)启用自动实例启动

1、创建必备的文件路径

下面介绍下这几个文件路径的作用。 
adump:存放审计信息  
bdump:bdump 目录存放的是数据库动行过程中的各个后台进程的跟踪信息,当中 alert 文件是警告文件,其文件名称为 alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。 
cdump:数据库遇到异常时用于存放异常信息。 
create:不详  
pfile:存放初始化参数文件。 
scripts:不详  
udump:放置 sql trace 之后的 session 的 trace 文件。 
(2)在 oradata 文件夹下创建 TESTDB 文件夹  

(3)在 flash_recovery_area 文件夹下创建 TESDB 文件夹

[oracle@ENMOEDU oracle]$ cd /u01/app/oracle/

[oracle@ENMOEDU oracle]$ mkdir -p admin/TESTDB/audmp

[oracle@ENMOEDU oracle]$ mkdir -p flash_recovery_area

2、创建初始化参数文件 pfile

方法一:从其他库拷贝一个 pfile 参数文件,修改内容和文件名为本次使用。见下 initorcl.ora

orcl.__db_cache_size=855638016
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base= E:\app\Administrator #ORACLE_BASE set from environment
orcl.__pga_aggregate_target=1191182336
orcl.__sga_target=2248146944
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=1325400064
orcl.__streams_pool_size=0
*.audit_file_dest= E:\app\Administrator\admin\orcl\adump
*.audit_trail= db
*.compatible= 11.2.0.0.0
*.control_files= E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL , E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL #Restore Controlfile
*.db_block_size=8192
*.db_domain=
*.db_name= orcl
*.db_recovery_file_dest_size=4102029312
*.db_recovery_file_dest=
*.diagnostic_dest= E:\app\Administrator
*.dispatchers= (PROTOCOL=TCP) (SERVICE=orclXDB)
*.log_archive_dest= E:\log
*.log_archive_format= arch_%t_%s_%r.log
*.memory_target=3435134976
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile= EXCLUSIVE
*.undo_tablespace= UNDOTBS1

方法二:根据安装软件自带 init.ora 来创建 pfile 文件并调整
我们根据 Oracle 安装软件 $ORACLE_HOME/dbs

(E:\app\Administrator\product\11.2.0\dbhome_1\dbs)目录下自带的 init.ora 来定制我们需要的 pfile。
(1)拷贝 init.ora 到“E:\app\Administrator\product\11.2.0\dbhome_1\database”路径下,并在更名为“initTESTDB.ora”。 

(2)编辑“initTESTDB.ora”文件。 

[oracle@ENMOEDU dbs]$ vi initTESTDB.ora 

diagnostic_dest= /u01/app/oracle

db_name= TESTDB

memory_target=1G

processes = 150

audit_file_dest= /u01/app/oracle/admin/TESTDB/adump

audit_trail = db

db_block_size=8192

db_domain=

db_recovery_file_dest= /u01/app/oracle/flash_recovery_area

db_recovery_file_dest_size=2G

diagnostic_dest= /u01/app/oracle

open_cursors=300

remote_login_passwordfile= EXCLUSIVE

undo_tablespace= UNDOTBS1

control_files = (/u01/app/oracle/oradata/TESTDB/control01.ctl,/u01/app/oracle/oradata/TESTDB/control02.ctl)

compatible = 11.2.0

基础模板如下:

db_name= ORCL

memory_target=1G

processes = 150

audit_file_dest= /admin/orcl/adump

audit_trail = db

db_block_size=8192

db_domain=

db_recovery_file_dest= /flash_recovery_area

db_recovery_file_dest_size=2G

diagnostic_dest=

dispatchers= (PROTOCOL=TCP) (SERVICE=ORCLXDB)

open_cursors=300

remote_login_passwordfile= EXCLUSIVE

undo_tablespace= UNDOTBS1

control_files = (ora_control1, ora_control2)

compatible
= 11.2.0

3、设置 oracle 启动的实例名称

set ORACLE_SID=TESTDB 

4、创建库实例

CMD 命令行中输入命令:oradim
-new -sid TESTDB 

5、创建密码文件

Oracle 的口令文件的作用是存放所有以 sysdba 或者 sysoper 权限连接数据库的用户的口令。 
打开 CMD 命令,输入命令行: 
orapwd
file=E:\app\SANMSUNG\product\11.2.0\dbhome_1\database\PWDTESTDB.ora
password=oracle  entries=30

注意,entries 参数指定数据库拥用 DBA 权限的用户的个数,该参数可由用户指定。

6、启动数据库到 nomount 状态

sqlplus / as sysdba

startup nomount

7、执行建库语句

以下语句可以拷贝到 CMD 命令行执行,也可以复制到文本文件中用 @执行。 

CREATE DATABASE TESTDBCREATE DATABASE testdb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 (E:\oracle\oradata\testdb\redo01.log) SIZE 100M,
GROUP 2 (E:\oracle\oradata\testdb\redo02.log) SIZE 100M,
GROUP 3 (E:\oracle\oradata\testdb\redo03.log) SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACER SET zhs16gbk
NATIONL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL  
DATAFIE E:\oracle\oradata\testdb\system01.dbf SIZE 500M REUSE 
SYSUX DATAFILE E:\oracle\oradata\testdb\sysaux01dbf SIZE 500M REUSE
DEFAULT TABLESPACE users
      DATAFILE E:\oracle\oradata\testdb\users01.dbf
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED 
DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE E:\oracle\oradata\testdb\temp01.dbf
      SIZE 20M REUSE autoextend on maxsize unlimited 
UNDO TABLESPACE undotbs1
      DATAFILE E:\oracle\oradata\testdb\undotbs01.dbf
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

7.1 借助官方文档编写建库语句

查看官方文档参考:http://blog.csdn.net/huangyanlong/article/details/43925909

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
AL32UTF8

  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;

– 依据实际修改脚本,删除掉一些没必要的设置

– 将日志组成员进行多元化

– 修改路径信息

CREATE DATABASE HYL

  LOGFILE GROUP 1
(/u01/app/oracle/oradata/HYL/disk1/redo01a.log ,

/u01/app/oracle/oradata/HYL/disk2/redo01b.log )

SIZE 100M BLOCKSIZE
512, 

GROUP 2 (/u01/app/oracle/oradata/HYL/disk1/redo02a.log ,

/u01/app/oracle/oradata/HYL/disk2/redo02b.log )

SIZE 100M BLOCKSIZE
512, 

GROUP 3 (/u01/app/oracle/oradata/HYL/disk1/redo03a.log ,

/u01/app/oracle/oradata/HYL/disk2/redo03b.log )

SIZE 100M BLOCKSIZE 512 

CHARACTER SET zhs16gbk

  NATIONAL CHARACTER SET AL16UTF16 

EXTENT MANAGEMENT LOCAL

  DATAFILE
/u01/app/oracle/oradata/HYL/disk3/system01.dbf SIZE 325M REUSE

  SYSAUX DATAFILE /u01/app/oracle/oradata/HYL/sysaux01.dbf
SIZE 325M REUSE 

DEFAULT TABLESPACE users

  DATAFILE
/u01/app/oracle/oradata/HYL/disk3/users01.dbf

  SIZE 500M REUSE AUTOEXTEND
ON MAXSIZE UNLIMITED 

DEFAULT TEMPORARY TABLESPACE tempts1

  TEMPFILE /u01/app/oracle/oradata/HYL/disk4/temp01.dbf

  SIZE 20M REUSE 

UNDO TABLESPACE undotbs

  DATAFILE
/u01/app/oracle/oradata/HYL/disk5/undotbs01.dbf

  SIZE 200M REUSE AUTOEXTEND
ON MAXSIZE UNLIMITED;

– 将以上脚本放在 oracle 目录下,然后执行

$cd /u01/app/oracle/

$vi createDB.sql

SQL @/u01/app/oracle/createDB.sql

7.2 设置数据文件和临时文件为自动扩展

(1)获得所有数据文件和临时文件信息
SQL col name for a60
SQL select file#,name from v$datafile union select file#,name from
v$tempfile;

  FILE# NAME
———- ————————————————————
  1
/u01/app/oracle/oradata/secooler/dfile/system01.dbf
  1
/u01/app/oracle/oradata/secooler/dfile/temp01.dbf
  2
/u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf
  3
/u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf
  4
/u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf

(2)将其调整为自动扩展
SQL alter database datafile 1 autoextend on;
SQL alter database datafile 2 autoextend on;
SQL alter database datafile 3 autoextend on;
SQL alter database datafile 4 autoextend on;
SQL alter database tempfile 1 autoextend on;

8、执行 catalog 脚步本创建数据字典

在 CMD 命令行下执行:

或 SQL @?/rdbms/admin/catalog.sql 

@E:\app\SANMSUNG\product\11.2.0\dbhome_1\RDBMS\ADMIN\catalog.sql

需约 5 分钟,作用:创建数据字典

9、执行 catproc 创建 package 包

在 CMD 命令行下执行:

或 SQL
@?/rdbms/admin/catproc.sql 

@E:\app\SANMSUNG\product\11.2.0\dbhome_1\RDBMS\ADMIN\catproc.sql

需约 10 分钟,跑完这两个脚本后库已经建完了,作用:创建存储过程和包

10、执行 pupbld

在执行 pupbld 前,先将用户切换为 system。 

SQL
connect system/oracle

或 SQL @?/sqlplus/admin/pupbld.sql 

SQL
E:\app\SANMSUNG\product\11.2.0\dbhome_1\sqlplus\admin\pupbld.sql

约 1 分钟,以 system 用户   运行此脚本,  作用:设置 sqlplus 的一些包,让其它用户可以登录 sqlplus

11、由 pfile 创建 spfile

spfile 的创建需要 dba 权限。 

SQL
con sys as sysdba

create
spfile from pfile;

SQL
connect system/oracle

12、执行 scott 脚本创建 scott 模式

这个环节可以省去,当然如果需要练习环境则这个环节最好不要省去。 
在 CMD 命令行中输入:@E:\app\SANMSUNG\product\11.2.0\dbhome_1\RDBMS\ADMIN\scott.sql

13、把数据库打开到正常状态

重启数据库并验证是否建库成功。 
shutdown immediate
startup
select instance_name,status from v$instance;

以上是“Oracle 如何实现手工建库”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计7943字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)