恒晖瑶 发表于 2018-9-8 12:49:15

oracle 进阶

  准备从零开始学习oracle。
  我说过2016年坚持每周写一篇技术博客。那么从现在开始。
  今天遇到一个弱爆了的问题:
  前几天换了一台笔记本,在新笔记本上面安装了oracle 11g R2。使用dbca安装完数据库没有报错,就关电脑睡觉了,今天想着开始学习oracle,实现OCP进阶,结果刚开始就犯了一个低级错误。
  我登陆服务器,
12# su - oracle$  切换到oracle用户之后,启动数据库
  [
123456789101112131415161718oracle@oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期一 1月 11 19:58:132016Copyright (c) 1982, 2009, Oracle.All rights reserved.已连接到空闲例程。SQL> startupORACLE 例程已经启动。Total System Global Area839282688 bytesFixed Size                  2217992 bytesVariable Size             494929912 bytesDatabase Buffers          339738624 bytesRedo Buffers                2396160 bytes数据库装载完毕。数据库已经打开。  之后查看1521端口状态
12$ netstat -nat | grep 1521$  奇怪,1521端口没监听。想了半天定位是监听没起来,于是启动监听
1234567891011121314151617181920212223242526272829$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.1.0 -Production on 11-1月 -2016 20:43:10Copyright (c) 1991, 2009, Oracle.All rights reserved.启动/u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: 请稍候...TNSLSNR for Linux: Version 11.2.0.1.0 -Production系统参数文件为/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora写入/u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日志信息监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))LISTENER 的 STATUS------------------------别名                      LISTENER版本                      TNSLSNRfor Linux: Version 11.2.0.1.0 - Production启动日期                  11-1月 -201620:43:10正常运行时间            0 天 0 小时 0 分 20 秒跟踪级别                  off安全性                  ON: LocalOS AuthenticationSNMP                      OFF监听程序参数文件          /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora监听程序日志文件         /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))监听程序不支持服务命令执行成功  重新查看端口状态:
123oracle@oracle ~]$ netstat -nat | grep 1521tcp       0      0 172.20.0.20:64165         172.20.0.20:1521            TIME_WAIT   tcp       0      0 :::1521                     :::*                        LISTEN  好了,端口启动起来了,由于我是学习oracle,肯定要查看当前数据库有哪些用户:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051SQL> select username fromall_users;    USERNAME------------------------------BIPMSHIXOEHRSCOTTOWBSYS_AUDITOWBSYSAPEX_030200APEX_PUBLIC_USERUSERNAME------------------------------FLOWS_FILESMGMT_VIEWSYSMANSPATIAL_CSW_ADMIN_USRSPATIAL_WFS_ADMIN_USRMDDATAMDSYSSI_INFORMTN_SCHEMAORDPLUGINSORDDATAORDSYSUSERNAME------------------------------OLAPSYSANONYMOUSXDBCTXSYSEXFSYSXS$NULLWMSYSAPPQOSSYSDBSNMPORACLE_OCMDIPUSERNAME------------------------------OUTLNSYSTEMSYS已选择36行。  于是切换到普通用户,想要学习一些对数据库表的基本增删改查,问题来了
1234567891011121314SQL> alter user scott identified by"123456";用户已更改。SQL> conn scott/scottERROR:ORA-28000: 帐户已被锁定    警告: 您不再连接到 ORACLE。SQL> alter user scott account unlock;SP2-0640: 未连接SQL> exit  奇怪,为什么一直报这个错呢?我已经解锁并且重置了密码呀,而且后面不管我执行什么样的命令都报SP2-0640: 未连接
  数据库重启问题依然存在,怀疑自己的实例是不是创建的有问题,从日志排查吧,看看日志里面有没有报错,奇怪的是,当我切换到ORACLE_HOME目录下想要查看日志时,报错出现了
1234567891011121314$ cd network/admin/$ lslistener.orasamples shrept.lst$ cd ../$ lsadmin docinstalljlib liblogmesg toolstrace$ cd trace/$ ls$ cd ../log/$ lssqlnet.log$ less sqlnet.log Directory does not exist for read/write   问题原因找到了,原来是目录不存在,奇怪,按理说安装数据库的时候这些目录应该自动创建的,先不管了,手动创建这些目录。
12345678910111213$ pwd/u01/app/oracle/product/11.2.0/db_1/network/log$ cd ../log/$ lssqlnet.log$ mkdir diag$ lsdiag sqlnet.log$ cd diag/$ ls$ mkdir client$ lsclient  重启数据库
123456789101112131415$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期一 1月 11 20:51:212016Copyright (c) 1982, 2009, Oracle.All rights reserved.    连接到: Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Miningand Real Application Testing optionsSQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。  为了保险起见,先将数据库启动到mount状态,(实际这里应该是先启动到nomount状态,再启动到mount状态,之后再打开数据库,手抖打错了,将错就错吧)
123456789101112SQL> startup mount;ORACLE 例程已经启动。Total System Global Area839282688 bytesFixed Size                  2217992 bytesVariable Size             494929912 bytesDatabase Buffers          339738624 bytesRedo Buffers                2396160 bytes数据库装载完毕。SQL> alter database open;数据库已更改。  之前登陆失败,用户已经被锁住,解锁用户并重置密码为tiger
123456789101112131415SQL> alter user scott account unlockidentified by tiger;用户已更改。SQL> alter user scott account unlock;用户已更改。SQL> conn scott/tiger;已连接。查看当前用户:SQL> show user;USER 为 "SCOTT"  查看当前用户下有哪些表:
12345678910SQL> select TABLE_NAME from user_tables;TABLE_NAME------------------------------SALGRADEBONUSEMPDEPTSQL>  问题解决。
  本文出自 “7159900” 博客,请务必保留此出处http://7169900.blog.51cto.com/7159900/1733956

页: [1]
查看完整版本: oracle 进阶