创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

  • 时间:3年前
  • 浏览:19255次
  • 网赌被黑找腾龙D哥出黑【微信:JLYL78999 QQ:840093333】

    目录

    软件环境

    前言

    在上一篇 RHEL6.1 安装 Oracle10gr2 (图文、解析) 中记录了如何成功的在RHEL6.1安装Oracle10gr2,但是在安装的过程中没有创建数据库,本篇主要记录了如果创建数据库和监听程序。

    安装Oracle监听程序

    Oracle Net Services Configuration:简.netca,也是启动其配置程序的指令名称。主要作用是配置监听程序、命名方法配置、本地net服务配置、目录使用配置。即可以配置一个监听程序和服务名,从而可以使oracle client连接至数据库进行相关操作。
    监听的文件存放位置在:$ORACLE_HOME\NETWORK\ADMIN\listener.ora
    服务名的文件存放位置在:$ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora

    oracle用户登录并执行netca指令启动配置程序:

    [oracle@jmilk database]$ netca

    选择配置监听程序
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 12019/09/20190904195812156759829298877.png" title="">

    添加一个监听程序
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 2

    设定一个监听程序的名称
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 3

    选择监听程序的协议
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 4

    选择监听程序的端口
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 5

    还需要创建别的监听程序吗?
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 6

    创建完成
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 7

    点击Finsh
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 8

    配置完成后的Output

    Configuring Listener:LISTENER
    Default local naming configuration complete.
    Listener configuration complete.
    Oracle Net Listener Startup:
    Running Listener Control:
    /u01/oracle/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
    Oracle Net Services configuration successful. The exit code is 0

    测试

    [root@jmilk bin]# pwd
    /u01/oracle/bin
    [root@jmilk bin]# ./lsnrctl status

    启动、停止监听程序

    lsnrctl start   #启动 
    lsnrctl stop    #停止 
    lsnrctl status  #查看状态 

    netca的执行文件

    [root@jmilk bin]# pwd
    /u01/oracle/bin
    [root@jmilk bin]# vim netca

    创建数据库

    DBCA程序可以执行创建数据库、删除数据库、管理数据库模板、配置现有数据库中的数据库选件
    配置Database Configuration Assistant

    [oracle@jmilk database]$ dbca

    创建数据库欢迎页面
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 9

    选择创建一个数据库
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 10

    选择创建一个通用数据库
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 11

    输入要创建的数据库的名称
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 12

    配置Enterprise Manager
    可以配置Enterprise manager警告,警告的内容为:使用database control配置数据库时,要求在当前oracle主目录中配置监听程序,必须运行Netca以配置并启动监听程序,然后才能继续。或者可以选择继续,但是不要使用database control配置。

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 13

    输入系统用户的全局密码,也可以单独的为每一个系统用户编辑不同的密码。
    All Account:system、sys、sysdba
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 14

    选择存储数据库的方式,这里选择存储在OS的File system中
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 15

    选择创建数据库文件的位置,这里选择从数据库模板创建
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 16

    指定数据库的快速恢复区域
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 17

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 18

    选择数据库的字符集为UTF8,更好的支持中文
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 19

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 20

    创建数据库,可以选择生产数据库创建脚本
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 21

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 22

    dbca 建库时报错提示:ORA-27125:unable to create shared memory segment
    解决方法

    [oracle@jmilk database]$ cd $ORACLE_HOME/bin
    [oracle@jmilk bin]$ mv oracle oracle.bin

    vim oracle

    #!/bin/bash
    export DISABLE_HUGETLBFS=1
    exec $ORACLE_HOME/bin/oracle.bin $@
    EOF
    [oracle@jmilk bin]$ chmod a+x oracle
    [oracle@jmilk bin]$ id oracle
    uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
    [oracle@test bin]$ more /proc/sys/vm/hugetlb_shm_group
    0
    [oracle@test bin]$ su - root
    Password:
    [root@test ~]# echo "503" > /proc/sys/vm/hugetlb_shm_group
    #将dba的gid写入hugetlb_shm_group

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 23

    等待创建数据库完成
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 24

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 25

    点击Password Management可以对系统用户进行配置,可以解锁、锁定一个用户,也可以为用户设定一个密码。
    其中的SCOTT用户是Oracle公司的创始人之一,一般我们用这个用户来进行学习,他的默认的密码为tiger这个密码是SCOTT家中的一只猫的名字。
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 26

    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 27

    点击Exit完成数据库的创建
    这里写图片描述 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解) 出黑流程 28

    测试:输入 用户名/密码 能够成功登陆表示数据库创建成功。

    [oracle@jmilk ~]$ sqlplus system/fanguiju
    
    SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jun 2 18:10:04 2016
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    
    SQL> 

    数据库名db_name

    数据库名是用于区分不同数据库的内部标识,就像人的身份证号一样。
    他用参数DB_NAME表示,如果一台Oracle Server上创建了多个数据库,那么每一个数据库都会有一个唯一的数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件/u01/admin/demo/pfile/init.ora.425201695953之中。
    注意:
    在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还会被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。

    数据库参数文件:

    [oracle@jmilk pfile]$ pwd
    /u01/admin/demo/pfile
    [oracle@jmilk pfile]$ vim init.ora.425201695953 

    数据库名的作用
    数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
    有很多Oracle安装文件目录是与数据库名相关的
    Example:

    [oracle@jmilk demo]$ pwd
    /u01/oradata/demo

    查询当前数据名
    方法一:

    select name from v$database;

    方法二:

    show parameter db

    方法三:查看参数文件。
    vi init.ora.425201695953

    db_name=demo

    数据库实例名instance_name

    数据库实例名用于Oracle与OS之间的联系和用于Oracle Server与外部连接时使用,可以和数据库名一样,也可以不一样。该参数为instance_name,若OS要与数据库取得交互,必须使用数据库实例名。
    Example:**Client要和某一个Oracle Server连接,就必须知道其数据库实例名,只知道数据库名是没有用的,与数据库名不同,在数据库安装或创建数据库之后,实例名可以被修改。数据库安装完成后,该实例名被写入数据库参数文件**pfile中,格式如下:

      db_name="demo"  # 一般不允许修改   
      db_domain=""   
      instance_name=demo # 可以修改,可以与db_name相同也可不同      

    数据库名与实例名的关系

    在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。数据库名和实例名共同确定一个数据库,一个数据库中可以有多个实例,相互运行不受影响。

    查询当前数据库实例名
    方法一:

    select instance_name from v$instance;

    方法二:

    show parameter instance

    方法三:在参数文件中查询

    操作系统环境变量ORACLE_SID

    在实际中,对于数据库实例名的描述有时使用实例名instance_name参数,有时使用ORACLE_SID参数。
    这两个都是数据库实例名,它们有什么区别呢?
    实例名instance_name、ORACLE_SID、Database、OS之间的关系

      (OS<---------------->  ORACLE  Database<--------(Instance_name(实例名))  

    虽然这里列出的两个参数都是数据库实例名,但:
    instance_name参数是ORACLE数据库的参数,此参数可以在参数文件中查询到。
    ORACLE_SID参数则是操作系统环境变量。

    操作系统环境变量ORACLE_SID用于和操作系统交互,也就是说,从操作系统的角度访问实例,必须通过ORACLE_SIDORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在LinuxOS中是ORACLE not available,在winntOS中是TNS:协议适配器错误。此参数与ORACLE_BASEORACLE_HOME等用法相同。在数据库安装之后,ORACLE_SID被用于定义数据库参数文件的名称。
    Example:

    $ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora
    #或  
    /u01/admin/demo/pfile/init.ora.425201695953 

    定义方法:

    export   ORACLE_SID=demo
    网赌被黑找腾龙D哥出黑【微信:JLYL78999 QQ:840093333】

    留言反馈

    网赌被黑找腾龙D哥出黑【微信:JLYL78999 QQ:978107219】鲁ICP备13008445号-3||Theme by Cn+网络, Soft by ZBlogPHP
  • 网赌被黑