设为首页 收藏本站
查看: 841|回复: 0

[经验分享] Oracle笔记(一)

[复制链接]

尚未签到

发表于 2018-9-25 12:17:18 | 显示全部楼层 |阅读模式
  一、数据库语言部分
  1. SQL语言:关系数据库的标准语言
  2. PL/SQL:过程化语言Procedural Language
  3. SQL*Plus:简单的报表,操作系统接口
  4. Oracle 8.01后出现:
  (1) 数据分区技术:只适用8.01后的版本,数据分散存放,不要放在一个硬盘上,I/O性能好,安全性能好。
  (2) 对象技术:存储过程、函数、包、数据库触发器、动态SQL编程
  (3) 数据库权限管理
  (4) 数据完整性约束(Data Integrity Constraints)
  二、Oracle 数据库核心,数据库管理员DBA
  数据库的管理与日常维护
  数据库总体设计
  数据库存储结构设计:物理结构、逻辑结构
  /**************************************************************************************************
  可以运行Oracle的操作系统:
  UNIX:Sun Solaris, HP-UX, AIX, Compaq-Tru64, SCO-UNIX和Linux(运行在PC机上)
  Windows NT/2000
  P4机器上不能安装Oracle,要想安装需要对安装文件进行修改或者下载补丁程序
  在P4机器上安装Oracle的方法(只限于Intel P4机器):
  将Oracle的安装光盘拷贝到硬盘上,然后将/stage/components/oracle.swp.jre/win32/bin/symcjit.dll 文件改名为symcjit.org,然后再开始安装。
  ***************************************************************************************************/
  数据库的备份与恢复
  优化与性能调整
  三、应用系统开发
  四、应用服务器OAS
  五、在Windows NT/2000下清除Oracle8i运行环境(重新安装前的准备工作):
  1. 删除Oracle8i注册表:
  regedit.exe => HKLM => Software => ORACLE
  2. 删除Oracle8i服务:
  regedit.exe => HKLM => System => CurrentControlset => Services => 以Oracle开头的服务
  3. 删除Oracle8i事件日志:
  regedit.exe => HKLM => System => CurrentControlset => Services => Eventlog => Application => 以Oracle开始的事件
  4. 删除Windows NT/2000安装磁盘/Program Files/Oracle目录。
  5. 删除Oracle8i环境变量
  控制面板 => 系统 => 高级 => 环境变量
  (1) 删除CLASSPATH
  (2) 编辑PATH,将其中与Oracle有关系的路径删除。
  6. 删除Oracle8i菜单
  7. 重新启动Windows NT/2000,停止服务。
  8. 删除Oracle8i主目录。
  /*
  IP: 75.64.16.X
  Mask: 255.255.248.0
  GateWay: 75.64.16.3
  DNS: 75.64.16.3
  */
  [七、Oracle 网络配置]
  /*
  (1) 查询数据库名:
  SQL> select name from v$database;
  (2) 查询数据库实例名:
  SQL> select instance_name from v$instance;
  (3) 查询数据库服务名:
  SQL> select value from v$parameter where name='service_names';  // (小写)
  (4)  查询全局数据库名(sys用户):
  SQL> select value$ from props$ where name='GLOBAL_DB_NAME';   // 字符串区分大小写
  */
  1.  Oracle网络驱动使用SQL*Net v2.0 连接
  Oracle for Win98 -> SQL*Net  Easy Configuration
  2. Oracle 网络驱动使用Net8 连接
  3. Oracle 网络驱动使用Net8i 连接
  Oracle程序组-> Network Administration -> Net8 Assistant
  [创建TNS连接过程]:
  (1) 启动Net8 Assistant
  (2) 本地->服务命名
  (3) 编辑->创建...
  (4) 第一页:网络服务名:给要使用的网络数据库在本机指定一个Host String,自己定义。
  (5) 第二页:协议:TCP/IP(Internet协议)
  (6) 第三页:
  主机名:输入对方机器的IP地址或域名。
  端口号:默认是1521,一般不需要修改。
  (7) 第四页:(Oracle8i)服务名:输入网络数据库的服务名
  (8) 第五页:完成。
  (9) 菜单:文件->保存网络配置。
  监视用户会话:
  SQL> select username, sid, serial#, machine from v$session;
  删除用户会话:

  SQL>>  /* 练习
  sqlplus stud01/stud01
  SQL> show user
  SQL> select * from emp;
  SQL> select * from dept;
  */
  [ // 使用下面的方法可以重复执行上一条SQL语句(在SQL*Plus中)
  SQL> l  //小写字母L,显示上一条SQL语句
  1* select username, sid, serial#, machine from v$session
  SQL> /  // 正斜杠:重复执行上一条SQL语句
  SQL> set linesize 1000  //将SQL*Plus中显示行宽设成1000个字符。
  SQL> connect system/manager@orasjz   // 在SQL*Plus中直接连接到另一台机器上的数据库,@字符后是另一台机器的tnsname
  ]
  4. 手工配置Oracle网络连接:主要是配置"tnsnames.ora"文件。
  A. 手工配置Oracle网络连接配置文件:tnsnames.ora
  (1) 在UNIX中:/u01/app/oracle/product/8.1.6/network/admin/tnsnames.ora
  (2) 在Windows 98/NT/2000中:d:/oracle/ora81/network/admin/tnsnames.ora
  B. 手工配置Oracle监听进程配置文件:listener.ora
  (1) 在UNIX中:/u01/app/oracle/product/8.1.6/network/admin/listener.ora
  UNIX下启动进程命令:
  $ lsnrctl start    // 启动监听进程
  $ lsnrctl status  // 显示监听进程状态
  $ lsnrctl stop   // 停止监听进程
  (2) 在Windows 98/NT/2000中:d:/oracle/ora81/network/admin/listener.ora
  启动进程的命令与UNIX相同。
  # LISTENER.ORA Network Configuration File: d:/Oracle/Ora81/network/admin/listener.ora
  # Generated by Oracle configuration tools.
  LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
  )
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = ORA54)(PORT = 1521))
  //注意:上面一行的HOST必须是你的主机名,否则监听会出问题,也可以使用你的机器的IP地址
  )
  )
  (DESCRIPTION =
  (PROTOCOL_STACK =
  (PRESENTATION = GIOP)
  (SESSION = RAW)
  )
  (ADDRESS = (PROTOCOL = TCP)(HOST = ORA54)(PORT = 2481))
  )
  )
  SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (SID_NAME = PLSExtProc)
  (ORACLE_HOME = d:/Oracle/Ora81)
  (PROGRAM = extproc)
  )
  (SID_DESC =
  (GLOBAL_DBNAME = ora54)
  (ORACLE_HOME = d:/Oracle/Ora81)
  (SID_NAME = ora54)   // 注意:ora54为数据库的SID名称,不能更改,否则监听出问题
  )
  )
  5. 将主机字符串(Host String)写入注册表(简化SQL*Plus的登录)
  regedit.exe -> HKLM -> Software -> Oracle -> home0
  增加关键字: local(字符串),键值:主机字符串名。
  /* 将下面的内容复制到一个.reg文件中,在Windows 2000中双击执行,即可实现增加或者修改local键值的作用
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]
  "local"="ora54"
  */
  [SVRMGRL: Server Manager的使用方法]
  D:/>svrmgrl

  Oracle Server Manager>  版权所有 (c) 1997,1999,Oracle Corporation。保留所有权利。

  Oracle8i Enterprise Edition>  With the Partitioning option

  JServer>  SVRMGR> connect internal  //使用svrmgrl,进入后使用的第一个命令必须是这个命令。
  口令:   // 如果要求输入口令,请输入oracle
  连接成功。
  SVRMGR> select name from v$database;  // 检查当前使用的数据库名
  NAME
  ---------
  ORA44
  已选择 1 行。
  SVRMGR> shutdown immediate  //关闭当前使用的数据库
  已关闭数据库。
  已卸下数据库。
  已关闭 ORACLE 实例。
  SVRMGR> startup    //启动当前使用的数据库,如果无效,请使用startup force
  已启动 ORACLE 实例。
  系统全局区域合计有                         24433932个字节

  Fixed>
  Variable>  Database Buffers                                 16777216个字节
  Redo Buffers                                        77824个字节
  ORA-00205: ?????????????????????
  SVRMGR>
  [另一个启动oracle数据库的例子]
  d:/> sqlplus internal/oracle
  SQL> startup force  //强行重新启动数据库。
  [修改口令字]

  SQL> grant connect to system>
  SQL> grant connect to sys>
  SQL>>
  SQL>>  SQL>password  //需要输入原口令
  // 注:以上修改口令的方法等价;sys与system用户可以互相修改口令;如果sys与system用户的口令都忘记了,使用如下方法:
  D:/>svrmgrl

  Oracle Server Manager>  版权所有 (c) 1997,1999,Oracle Corporation。保留所有权利。

  Oracle8i Enterprise Edition>  With the Partitioning option

  JServer>  SVRMGR> connect internal/oracle
  连接成功。

  SVRMGR> grant connect to system>  语句已处理。
  SVRMGR> exit
  服务器管理程序结束。
  [2002.04.18]
  //=========================================================================================================
  八、Oracle 产品组成
  查询数据库选件产品:
  SQL> select * from v$option;
  一般都是True, 如果是False, 可以双击激活。
  /* cartridges (小产品的)插件,(大产品的)选件(options)*/
  [SYS用户是Oracle数据库中权限最大的用户。]
  [SQL*Plus登录方法]
  1. c:/> sqlplus "/ as sysdba"
  2. c:/> sqlplus internal
  // 注意:以上两种方法可以类似的使用于SQL*Plus的图形登录界面中
  // 用这种登录方法登录进去,所使用的用户均为SYS。
  [之所以会出现这种登录方法,是因为在NT的用户组中存在一个ORA_DBA的本地组, 凡在此组中的用户使用操作系统认证,即在此组中的用户登录数据库时不需要密码。]
  [orapwd命令:修改internal用户的口令字]
  /* orapwd的命令行参数
  D:/>orapwd
  Usage: orapwd file= password= entries=
  where
  file - name of password file (mand),
  password - password for SYS and INTERNAL (mand),
  entries - maximum number of distinct DBA and OPERs (opt),
  There are no spaces around the equal-to (=) character.  */
  修改internal口令字(internal默认口令为oracle)认证方法(A B两个步骤):
  A. 修改Oracle登录认证方法:
  修改文件SQLNET.ORA文件。
  SQLNET.AUTHENTICATION_SERVICES=(NTS) //将这一行前面加上#号注释掉,即可将Oracle的认证方法由操作系统认证改为Oracle认证
  SQLNET.ORA文件的位置:
  UNIX:/u01/app/oracle/product/8.1.6/network/admin/sqlnet.ora
  Windows NT/2000: d:/oracle/ora81/network/admin/sqlnet.ora
  B. 修改Internal口令字:
  Windows NT/2000:
  C:/>ORAPWD file=d:/oracle/ora81/database/pwdora8i.ora
  password=YourPassword  // YourPassword为你要设置的密码
  entries=30
  /* ORAPWD file=d:/oracle/ora81/database/pwdora54.ora password=qev entries=30 */
  UNIX:
  $ orapwd file=$ORACLE_HOME/dbs/orapwSID
  password=YourPassword
  entries=30
  然后重新启动Oracle服务(服务->OracleServiceHOSTNAME)。
  /* 在执行上述命令之前,需要先将相应目录的pwdora8i.ora(或orapwSID)文件删除或者改名,因为口令字文件不能重名。*/
  [tkprof 跟踪文件整理工具]
  $ tkprof x.trc x.txt
  Windows 2000/NT:
  d:/oracle/admin/db_name/udump/*.trc
  UNIX:/u01/app/oracle/amdin/db_name/udump/*.trc     // */
  九、Oracle数据分区技术:8.0以后开始使用
  (一)LOB(Large Object)大对象类型数据:
  1. BLOB:存储二进制数据,如图象、视频、声音等,用于代替Long raw类型(Oracle7.0以前的数据类型,今后不再支持)
  2. CLOB:存储大字符,如:个人简历,用于代替long字段。
  3. NCLOB:其它民族语言的支持
  (1) 数据库字符集NLS:
  Server端:NLS_CHARACTERSET: (如果为以下的字符集,Oracle的数据库可以用来存储汉字)
  ZHS16GBK(Oraclei8, Oracle8)
  ZHS16CGB231280(Oracle7.3, 8, 8i)
  此参数位置在数据字典中,查询核心字符集(语言、日期、货币等):
  SQL>select * from nls_database_parameters;
  Client端:NLS_LANG=Simplified Chinese_CHINA.ZHS16GBK (如果没有设置,默认是英文)
  regedit.exe
  UNIX Client中:
  $ NLS_LANG="simplified chinese"_china.zhs16gbk
  $ export NLS_LANG
  //一般将上述环境变量放入.profile文件中。
  /***********************************************插入内容********************************************************
  (1) sys是一种用户,internal是一种方式,用来启动关闭数据库,9.0以后不再使用internal,全部是sys。
  (2) SQL>set com v7  //将8i版本暂时退回到7版

  (3) SQL>>
  SQL>>  ****************************************************************************************************************/
  (2)Oracle数据库核心字符集修改方法:
  
  • 修改数据字典(使用SYS用户):
      SQL>update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
      SQL>commit;
      然后重新启动数据库。
      4. BFILE:外部文件存储,将数据存储在服务器硬盘
      十、Oracle 8i 数据库改变:
      1. 网络计算数据库
      2. 支持IFS(Internet File System)
      3. 集成Java虚拟机


  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-601817-1-1.html 上篇帖子: oracle在windows下的自动备份 下篇帖子: 在Oracle中实现定时操作
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表