oracel 10G手工建库

来源:互联网 发布:kik是什么软件 编辑:程序博客网 时间:2024/04/26 12:55
1)建库前准备

1.确保Oracle软件已经安装上
2.设计数据库:确定数据库用途、类型、体系结构、数据库名
3.必须是已授权SYSDBA的账户 //操作系统或者口令文件验证
4.确保有足够的内存启动实例
5.确保存储空间可以运行数据库
2)建库
1.配置环境变量
$ vi .profile
ORACLE_SID=mia //配置实例名
$ ..profile //执行.profile
$ echo $ORACLE_SID //查看SID是否正确
2.确保有适当的操作系统权限,SYSDBA权限,验证
remote_login_passwordfile=exclusive//只允许一个实例使用口令文件,在初始化参数中设置
$ orapwd file=orapwSID password=oracle entries=5 force=y //在$ORACLE_HOME/dbs下创建口令文件
3.创建相关目录
$ mkdir -p $ORACLE_BASE/admin/mia/adump //存放审计跟踪信息
$ mkdir -p $ORACLE_BASE/admin/mia/bdump //存放运行过程中后台进程的跟踪信息
$ mkdir -p $ORACLE_BASE/admin/mia/cdump //存放内核的跟踪信息
$ mkdir -p $ORACLE_BASE/admin/mia/udump //存放用户的跟踪信息
$ mkdir -p $ORACLE_BASE/oradata/mia //存放数据库文件
3.创建初始化参数文件 //$ORACLE_HOME/dbs下
$ more init.ora |grep -v '^#'|grep -v '^$' >initmia.ora //根据init.ora创建initmia.ora(忽略以$和#开头的)
$ vi initmia.ora 
db_name=mia //配置数据库标识符,与ORACLE_SID环境变量要一致
sga_max_size=500M //最大sga内存
sga_target=272M //sga可自动分配内存,ALTER SYSTEM SET SGA_TARGET=value,不为0时ASMM可用,不设置就要为sga每个组成部分手动分配内存
pga_aggregate_target=90M //pga可自动分配内存
audit_file_dest=$ORACLE_BASE/admin/mia/adump //存放审计跟踪信息
background_dump_dest=$ORACLE_BASE/admin/mia/ //存放运行过程中后台进程的跟踪信息
core_dump_dest=$ORACLE_BASE/admin/mia/cdump //存放内核的跟踪信息
user_dump_dest=$ORACLE_BASE/admin/mia/udump //存放用户的跟踪信息
//配置控制文件位置,装载数据库时到这个位置打开控制文件
control_files=($ORACLE_BASE/oradata/mia/control01.ctl, 
$ORACLE_BASE/oradata/mia/control02.ctl,
$ORACLE_BASE/oradata/mia/control03.ctl)
undo_management=AUTO //还原表空间的管理方式
undo_tablespace=undotbs1 //默认的还原表空间
db_recovery_file_dest=$ORACLE_BASE/flash_recovery_area  //配置快速恢复区位置(OMF必须配置)
db_recovery_file_dest_size=2048M //配置快速恢复区大小
remote_login_passwordfile=exclusive //只允许一个实例使用口令文件
//sga中参数
db_cache_size //标准块高速缓存大小,缺省48M
shared_pool_size //共享池大小,缺省16M
log_buffer //重做日志缓冲区大小
large_pool_size //大型池大小,缺省0
java_pool_size //java池大小,缺省24M
db_block_size=8KB //块大小,缺省8K
processes=150 //最大进程数
compatible=10.2.0.1.0 //兼容性
open_cursors=300 //用户进程可以分配的专用SQL区数目,缺省50
db_file_multiblock_read_count=16 //深度
4.连接实例
$ SQLPLUS /nolog
SQL>CONNECT SYS/password AS SYSDBA
5.创建spfile
CREATE SPFILE='/u01/oracle/dbs/spfilemia.ora' FROM PFILE;
6.启动实例到NOMOUNT状态
SQL>STARTUP NOMOUNT
可以查看参数配置是否正确
1)还原表空间管理方式
SQL> show parameter undo_management
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO

2)跟踪文件

SQL> show parameter dump

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_core_dump                 string      partial
background_dump_dest                 string      /u01/admin/mia/bdump
core_dump_dest                       string      /u01/admin/mia/cdump
max_dump_file_size                   string      10240
shadow_core_dump                     string      partial
user_dump_dest                       string      /u01/admin/mia/udump

7.创建并执行CREATE DATABASE的SQL脚本

CREATE DATABASE mia
USER SYS IDENTIFIED BY sa //创建SYS用户,密码
USER SYSTEM IDENTIFIED BY sa //创建SYSTEM用户,密码
LOGFILE GROUP 1 ('/u01/oradata/mia/redo01.log') SIZE 100M, //指定要使用的日志文件名及所属组
GROUP 2 ('/u01/oradata/mia/redo02.log') SIZE 100M,
GROUP 3 ('/u01/oradata/mia/redo03.log') SIZE 100M
MAXLOGFILES 5 //最大日志组数
MAXLOGMEMBERS 5 //最大组内成员数
MAXLOGHISTORY 1 //最大归档日志数(RAC自动介质恢复)
MAXDATAFILES 100 //控制文件的数据文件段初始化大小
MAXINSTANCES 1 //最大实例数(同时装载、打开数据库)
CHARACTER SET US7ASCII //数据库字符集
NATIONAL CHARACTER SET AL16UTF16 //国家字符集
DATAFILE '/u01/oracle/oradata/mia/system01.dbf' SIZE 480M REUSE EXTENT MANAGEMENT LOCAL //重新指定数据文件位置、大小,区采用本地管理
SYSAUX DATAFILE '/u01/oracle/oradata/mia/sysaux01.dbf' SIZE 230M REUSE //重新指定SYSAUX表空间中数据文件的位置、大小
UNDO TABLESPACE undotbs //创建还原表空间
DATAFILE '/u01/oracle/oradata/mia/undotbs01.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED //重新指定还原表空间中数据文件的位置、大小,数据文件自动拓展,不限量
DEFAULT TABLESPACE users //创建默认表空间
DATAFILE '/u01/oradata/mia/users01.dbf' size 100m autoextend off //指定默认表空间位置、大小
DEFAULT TEMPORARY TABLESPACE temp //创建默认临时表空间
TEMPFILE '/u01/oracle/oradata/mia/temp01.dbf' SIZE 20M REUSE //重新指定临时表空间中数据文件的位置、大小

8.运行脚本

@ORACLE_HOME/rdbms/admin/catalog.sql //创建数据字典
@ORACLE_HOME/rdbms/admin/catproc.sql //创建存储过程

9.数据库验证

SQL> select name from v$tablespace; //查询表空间信息

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS

SQL> select name from v$datafile; //查询数据文件信息

NAME
--------------------------------------------------------------------------------
/u01/oradata/mia/system01.dbf
/u01/oradata/mia/undotbs01.dbf
/u01/oradata/mia/sysaux01.dbf
/u01/oradata/mia/users01.dbf

SQL> select name from v$controlfile; //查询控制文件信息

NAME
--------------------------------------------------------------------------------
/u01/oradata/mia/control01.ctl
/u01/oradata/mia/control02.ctl
/u01/oradata/mia/control03.ctl

SQL> select member from v$logfile; //查询日志文件信息

MEMBER
--------------------------------------------------------------------------------
/u01/oradata/mia/redo01.log
/u01/oradata/mia/redo02.log
/u01/oradata/mia/redo03.log

3)附录

1.初始化参数脚本:

db_name=mia                                 

sga_target=272M                            
pga_aggregate_target=90M                   

audit_file_dest=$ORACLE_BASE/admin/mia/adump        
background_dump_dest=$ORACLE_BASE/admin/mia/bdump   
core_dump_dest=$ORACLE_BASE/admin/mia/cdump         
user_dump_dest=$ORACLE_BASE/admin/mia/udump         

control_files=($ORACLE_BASE/oradata/mia/control01.ctl, 
$ORACLE_BASE/oradata/mia/control02.ctl,
$ORACLE_BASE/oradata/mia/control03.ctl)  

remote_login_passwordfile=exclusive    
undo_management=AUTO                  
undo_tablespace=undotbs1               

db_recovery_file_dest=$ORACLE_BASE/flash_recovery_area  
db_recovery_file_dest_size=2048M                      

db_files = 80                                                      # SMALL
db_file_multiblock_read_count = 16                                 # SMALL
log_checkpoint_interval = 10000
processes = 150                                                    # SMALL  
parallel_max_servers = 5                                           # SMALL
max_dump_file_size = 10240      # limit trace file size to 5 Meg each
global_names = TRUE

2.建库脚本

CREATE DATABASE mia
USER SYS IDENTIFIED BY sa
USER SYSTEM IDENTIFIED BY sa
LOGFILE GROUP 1 ('/u01/oradata/mia/redo01.log') SIZE 50m,
GROUP 2 ('/u01/oradata/mia/redo02.log') SIZE 50m,
GROUP 3 ('/u01/oradata/mia/redo03.log') SIZE 50m
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/oradata/mia/system01.dbf' SIZE 480M REUSE EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oradata/mia/sysaux01.dbf' SIZE 230M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/oradata/mia/undotbs01.dbf' SIZE 100M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TABLESPACE users
DATAFILE '/u01/oradata/mia/users01.dbf' size 100m autoextend off
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oradata/mia/temp01.dbf' SIZE 100M REUSE;

手动创建数据库完成后,创建新用户,并用新用户登陆到数据库时,报错如下:

SYS@ jgyx>conn jgyx/jgyx
ERROR:
ORA-00942: table or view does not exist

Error accessing PRODUCT_USER_PROFILE
Warning:  Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM

 使用SYSDBA登陆时无报错。

解决方法:

需要使用SYSTEM用户登陆并执行@$ORACLE_HOME/sqlplus/admin/pupbld.sql脚本,不能用SYSDBA。




0 0
原创粉丝点击