博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的Oracle 9i学习日志(8)--创建数据库
阅读量:6157 次
发布时间:2019-06-21

本文共 4300 字,大约阅读时间需要 14 分钟。

一、优化的弹性架构:

Oracle推荐的标准数据库架构框架;

主要包括三条规则:建立一个统一的目录结构,可以容纳各种需求的数据库文件;将不同行为的对象放入不同的表空间;将不同的数据库组件放在不同的磁盘将大大提高数据库的可靠性和性能。

二、认证模型:

操作系统认证:

属于dba组或oper组(对于Unix系统)的用户,即可用os认证方式。

password file认证:

在REMOTE_LOGIN_PASSWORDFILE=shared或none状态时,相当于REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE但无password文件。REMOTE_LOGIN_PASSWORDFILE是静态参数在重启instance前不能改变参数值。

在密码文件丢失的情况下可以做如下工作:

1、确认 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

2、创建新密码文件:$orapwd file=orapwSID password=password entries=max_users    #等号两端不要有空格

3、$ sqlplus /nolog

SQL> conn sys as sysdba 

Enter password:( 任意输入) 
Connected to an idle instance. 
4、启动数据库到mount或open状态

SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';      #查看被授予sysdba权限的用户

SQL> REVOKE SYSDBA FROM SYS-user;

SQL> GRANT SYSDBA TO SYS-user;       

#将其重新加入密码文件,对有sysoper权限的用户执行类似操作。 

 

注意:beginning with Oracle Database 11g Release 1, database passwords are case sensitive. (You can disable case sensitivity and return to pre–Release 11g behavior by setting the SEC_CASE_SENSITIVE_LOGON initialization parameter to FALSE.)

Connecting with Administrative Privileges: Example 

This example illustrates that a user is assigned another schema (SYS) when connecting 
with the SYSDBA system privilege. Assume that the sample user oe has been granted 
the SYSDBA system privilege and has issued the following statements: 
CONNECT oe 
CREATE TABLE admin_test(name VARCHAR2(20)); 
Later, user oe issues these statements: 
CONNECT oe AS SYSDBA 
SELECT * FROM admin_test; 
User oe now receives the following error: 
ORA-00942: table or view does not exist 
Having connected as SYSDBA, user oe now references the SYS schema, but the table 
was created in the oe schema.

 

三、用dbca创建数据库:

1、设置环境变量

ORACLE_BASE 

• ORACLE_HOME 
• ORACLE_SID 
ORA_NLS33      #与字符集相关参数的环境变量 
PATH 
LD_LIBRARY_PATH

2、$dbca

心得:数据库可以创建多个,启动不同的instance是根据环境变量里的ORACLE_SID来启动对应的instance。用远程客户端连接时也应设置好sid参数,以区分连接的instance。

四、手工创建数据库:

Step 1: Specify an Instance Identifier (SID) 

#数据库名字长度<=8,sid长度<=12,而数据库名字通常和sid相同,所以在sid的名字最好不要超过8个字符。

Step 2: Ensure That the Required Environment Variables Are Set

export ORACLE_BASE=/u01 

export ORACLE_HOME=$ORACLE_BASE/oracle 
export ORACLE_SID=test 
export ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data 
export PATH=$ORACLE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

Step 3: Choose a Database Administrator Authentication Method

不管哪种认证方式都应该创建password文件。

Step 4: Create the Initialization Parameter File

Step 5: (Windows Only) Create an Instance

Step 6: Connect to the Instance

Step 7: Create a Server Parameter File

SQL> create spfile from pfile; #如果不创建spfile,则pfile里必须制定control files的参数值,而如果是spfile则这些值将会自动写入spfile。

Step 8: Start the Instance

SQL> startup nomount;

Step 9: Issue the CREATE DATABASE Statement

事先写好的sql脚本:

spool dbcreate.log; 

create database "test" 
        maxdatafiles 500 
        maxinstances 8 
        maxlogfiles 32 
        character set "utf8" 
        national character set al16utf16 
        archivelog 
        datafile 
                '/u01/oradata/test/system01.dbf' size 300M 
        extent management local 
        default temporary tablespace temp tempfile '/u01/oradata/test/tempts01.dbf’ size 100M extent management local 
        undo tablespace "undotbs1" 
        datafile '/u01/oradata/test/undotbs01.dbf' size 200M 
        logfile 
    group 1 ( 
        '/u01/oradata/test/redo01a.rdo', 
        '/u01/oradata/test/redo01b.rdo' 
    ) size 100M, 
    group 2 ( 
        '/u01/oradata/test/redo02a.rdo', 
        '/u01/oradata/test/redo02b.rdo' 
    ) size 100M, 
    group 3 ( 
        '/u01/oradata/test/redo03a.rdo', 
        '/u01/oradata/test/redo03b.rdo' 
    ) size 100M 
spool off;

注意:脚本中的有些参数要和初始化文件中的一致,执行脚本前需确认所需的目录是否创建,如:/u01/oradata/test/archive,/u01/admin/test/bdump  cdump  create  pfile  udump等初始化参数文件中指定的目录。缺省口令,sys:change_on_install;system:manager。

问题:新创建的数据库如果使用缺省口令,远程客户端能连接上来吗?

Step 10: Create Additional Tablespaces

可选,但通常要做,如:

CREATE TABLESPACE apps_tbs LOGGING DATAFILE '/u01/app/oracle/oradata/mynewdb/apps01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;

Step 11: Run Scripts to Build Data Dictionary Views

执行脚本:

spool log1.log

@?/rdbms/admin/catalog.sql   #"?"号代表ORACLE_HOME

@?/rdbms/admin/catproc.sql

@?/sqlplus/admin/pupbld.sql

 

Step 12: Run Scripts to Install Additional Options (Optional)

Step 13: Back Up the Database.

Step 14: (Optional) Enable Automatic Instance Startup

注意:如果在创建数据库的过程中出错而停止,则应将已创建好的文件删除后再重新创建。
本文转自 d185740815 51CTO博客,原文链接:http://blog.51cto.com/luotaoyang/283652,如需转载请自行联系原作者
你可能感兴趣的文章
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>