zoukankan      html  css  js  c++  java
  • 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

    目录

    软件环境

    • 操作系统
      • RHEL 6.1
    • 软件环境
      • Oracle10gr2

    前言

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

    安装Oracle监听程序

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

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

    [oracle@jmilk database]$ netca

    选择配置监听程序
    这里写图片描述

    添加一个监听程序
    这里写图片描述

    设定一个监听程序的名称
    这里写图片描述

    选择监听程序的协议
    这里写图片描述

    选择监听程序的端口
    这里写图片描述

    还需要创建别的监听程序吗?
    这里写图片描述

    创建完成
    这里写图片描述

    点击Finsh
    这里写图片描述

    配置完成后的Output

    Configuring Listener:LISTENERDefault 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

    创建数据库欢迎页面
    这里写图片描述

    选择创建一个数据库
    这里写图片描述

    选择创建一个通用数据库
    这里写图片描述

    输入要创建的数据库的名称
    这里写图片描述

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

    这里写图片描述

    输入系统用户的全局密码,也可以单独的为每一个系统用户编辑不同的密码。
    All Account:system、sys、sysdba
    这里写图片描述

    选择存储数据库的方式,这里选择存储在OS的File system中
    这里写图片描述

    选择创建数据库文件的位置,这里选择从数据库模板创建
    这里写图片描述

    指定数据库的快速恢复区域
    这里写图片描述

    这里写图片描述

    选择数据库的字符集为UTF8,更好的支持中文
    这里写图片描述

    这里写图片描述

    创建数据库,可以选择生产数据库创建脚本
    这里写图片描述

    这里写图片描述

    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

    这里写图片描述

    等待创建数据库完成
    这里写图片描述

    这里写图片描述

    点击Password Management可以对系统用户进行配置,可以解锁、锁定一个用户,也可以为用户设定一个密码。
    其中的SCOTT用户是Oracle公司的创始人之一,一般我们用这个用户来进行学习,他的默认的密码为tiger这个密码是SCOTT家中的一只猫的名字。
    这里写图片描述

    这里写图片描述

    点击Exit完成数据库的创建
    这里写图片描述

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

    [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

    相关阅读:

  • 相关阅读:
    C# 使用HtmlAgilityPack抓取网页信息
    企业微信开发之向员工付款(C#)
    企业微信开发之发放企业红包(C#)
    body-parser的使用
    NodeJs的express服务器报413 payload too large错误
    'nuxt' 不是内部或外部命令,也不是可运行的程序
    Linux node使用npm成功安装命令后,执行时却报找不到命令的问题
    npm查看全局安装了那些包的命令
    JS中==与===的区别
    JS事件流理解
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310848.html
Copyright © 2011-2022 走看看