|
准备从零开始学习oracle。
我说过2016年坚持每周写一篇技术博客。那么从现在开始。
今天遇到一个弱爆了的问题:
前几天换了一台笔记本,在新笔记本上面安装了oracle 11g R2。使用dbca安装完数据库没有报错,就关电脑睡觉了,今天想着开始学习oracle,实现OCP进阶,结果刚开始就犯了一个低级错误。
我登陆服务器,
12[root@oracle ~]# su - oracle[oracle@oracle ~]$ 切换到oracle用户之后,启动数据库
[
123456789101112131415161718oracle@oracle ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期一 1月 11 19:58:132016 Copyright (c) 1982, 2009, Oracle. All rights reserved. 已连接到空闲例程。 SQL> startupORACLE 例程已经启动。 Total System Global Area 839282688 bytesFixed Size 2217992 bytesVariable Size 494929912 bytesDatabase Buffers 339738624 bytesRedo Buffers 2396160 bytes数据库装载完毕。数据库已经打开。 之后查看1521端口状态
12[oracle@oracle ~]$ netstat -nat | grep 1521[oracle@oracle ~]$ 奇怪,1521端口没监听。想了半天定位是监听没起来,于是启动监听
1234567891011121314151617181920212223242526272829[oracle@oracle ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 -Production on 11-1月 -2016 20:43:10 Copyright (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_USER USERNAME------------------------------FLOWS_FILESMGMT_VIEWSYSMANSPATIAL_CSW_ADMIN_USRSPATIAL_WFS_ADMIN_USRMDDATAMDSYSSI_INFORMTN_SCHEMAORDPLUGINSORDDATAORDSYS USERNAME------------------------------OLAPSYSANONYMOUSXDBCTXSYSEXFSYSXS$NULLWMSYSAPPQOSSYSDBSNMPORACLE_OCMDIP USERNAME------------------------------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[oracle@oracle db_1]$ cd network/admin/[oracle@oracle admin]$ lslistener.ora samples shrept.lst[oracle@oracle admin]$ cd ../[oracle@oracle network]$ lsadmin doc install jlib lib log mesg tools trace[oracle@oracle network]$ cd trace/[oracle@oracle trace]$ ls[oracle@oracle trace]$ cd ../log/[oracle@oracle log]$ lssqlnet.log[oracle@oracle log]$ less sqlnet.log Directory does not exist for read/write[/u01/app/oracle/product/11.2.0/db_1/log] [/u01/app/oracle/product/11.2.0/db_1/log/diag/clients] 问题原因找到了,原来是目录不存在,奇怪,按理说安装数据库的时候这些目录应该自动创建的,先不管了,手动创建这些目录。
12345678910111213[oracle@oraclelog]$ pwd/u01/app/oracle/product/11.2.0/db_1/network/log[oracle@oracle log]$ cd ../log/[oracle@oracle log]$ lssqlnet.log[oracle@oracle log]$ mkdir diag[oracle@oracle log]$ lsdiag sqlnet.log[oracle@oracle log]$ cd diag/[oracle@oracle diag]$ ls[oracle@oracle diag]$ mkdir client[oracle@oracle diag]$ lsclient 重启数据库
123456789101112131415[oracle@oracle ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期一 1月 11 20:51:212016 Copyright (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 options SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。 为了保险起见,先将数据库启动到mount状态,(实际这里应该是先启动到nomount状态,再启动到mount状态,之后再打开数据库,手抖打错了,将错就错吧)
123456789101112SQL> startup mount;ORACLE 例程已经启动。 Total System Global Area 839282688 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------------------------------SALGRADEBONUSEMPDEPT SQL> 问题解决。
本文出自 “7159900” 博客,请务必保留此出处http://7169900.blog.51cto.com/7159900/1733956
|
|
|