oracle 进阶 (1)


准备从零开始学习oracle。

我说过2016年坚持每周写一篇技术博客。那么从现在开始。

 

今天遇到一个弱爆了的问题:

前几天换了一台笔记本,在新笔记本上面安装了oracle 11g R2。使用dbca安装完数据库没有报错,就关电脑睡觉了,今天想着开始学习oracle,实现OCP进阶,结果刚开始就犯了一个低级错误。

 

我登陆服务器,

[root@oracle ~]# su - oracle
[oracle@oracle ~]$


切换到oracle用户之后,启动数据库

[

oracle@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> startup
ORACLE 例程已经启动。
 
Total System Global Area  839282688 bytes
Fixed Size                  2217992 bytes
Variable Size             494929912 bytes
Database Buffers          339738624 bytes
Redo Buffers                2396160 bytes
数据库装载完毕。
数据库已经打开。


 

之后查看1521端口状态

[oracle@oracle ~]$ netstat -nat | grep 1521
[oracle@oracle ~]$


奇怪,1521端口没监听。想了半天定位是监听没起来,于是启动监听

[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 Authentication
SNMP                      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)))
监听程序不支持服务
命令执行成功


 

重新查看端口状态:


oracle@oracle ~]$ netstat -nat | grep 1521
tcp       0      0 172.20.0.20:64165           172.20.0.20:1521            TIME_WAIT   
tcp       0      0 :::1521                     :::*                        LISTEN


 

好了,端口启动起来了,由于我是学习oracle,肯定要查看当前数据库有哪些用户:

 

SQL> select username fromall_users;  
 
USERNAME
------------------------------
BI
PM
SH
IX
OE
HR
SCOTT
OWBSYS_AUDIT
OWBSYS
APEX_030200
APEX_PUBLIC_USER
 
USERNAME
------------------------------
FLOWS_FILES
MGMT_VIEW
SYSMAN
SPATIAL_CSW_ADMIN_USR
SPATIAL_WFS_ADMIN_USR
MDDATA
MDSYS
SI_INFORMTN_SCHEMA
ORDPLUGINS
ORDDATA
ORDSYS
 
USERNAME
------------------------------
OLAPSYS
ANONYMOUS
XDB
CTXSYS
EXFSYS
XS$NULL
WMSYS
APPQOSSYS
DBSNMP
ORACLE_OCM
DIP
 
USERNAME
------------------------------
OUTLN
SYSTEM
SYS
 
已选择36行。


 

于是切换到普通用户,想要学习一些对数据库表的基本增删改查,问题来了

 

SQL> alter user scott identified by"123456";
 
用户已更改。
 
SQL> conn scott/scott
ERROR:
ORA-28000: 帐户已被锁定
 
 
警告: 您不再连接到 ORACLE。
 
SQL> alter user scott account unlock;
SP2-0640: 未连接
SQL> exit


 

奇怪,为什么一直报这个错呢?我已经解锁并且重置了密码呀,而且后面不管我执行什么样的命令都报SP2-0640: 未连接

 

数据库重启问题依然存在,怀疑自己的实例是不是创建的有问题,从日志排查吧,看看日志里面有没有报错,奇怪的是,当我切换到ORACLE_HOME目录下想要查看日志时,报错出现了

 

[oracle@oracle db_1]$ cd network/admin/
[oracle@oracle admin]$ ls
listener.ora  samples shrept.lst
[oracle@oracle admin]$ cd ../
[oracle@oracle network]$ ls
admin 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]$ ls
sqlnet.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]


 

问题原因找到了,原来是目录不存在,奇怪,按理说安装数据库的时候这些目录应该自动创建的,先不管了,手动创建这些目录。

 

[oracle@oraclelog]$ pwd
/u01/app/oracle/product/11.2.0/db_1/network/log
[oracle@oracle log]$ cd ../log/
[oracle@oracle log]$ ls
sqlnet.log
[oracle@oracle log]$ mkdir diag
[oracle@oracle log]$ ls
diag sqlnet.log
[oracle@oracle log]$ cd diag/
[oracle@oracle diag]$ ls
[oracle@oracle diag]$ mkdir client
[oracle@oracle diag]$ ls
client


 

重启数据库

 

[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 Production
With the Partitioning, OLAP, Data Miningand Real Application Testing options
 
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

 

为了保险起见,先将数据库启动到mount状态,(实际这里应该是先启动到nomount状态,再启动到mount状态,之后再打开数据库,手抖打错了,将错就错吧)

SQL> startup mount;
ORACLE 例程已经启动。
 
Total System Global Area  839282688 bytes
Fixed Size                  2217992 bytes
Variable Size             494929912 bytes
Database Buffers          339738624 bytes
Redo Buffers                2396160 bytes
数据库装载完毕。
SQL> alter database open;
 
数据库已更改。


 

之前登陆失败,用户已经被锁住,解锁用户并重置密码为tiger

SQL> alter user scott account unlockidentified by tiger;
 
用户已更改。
 
SQL> alter user scott account unlock;
 
用户已更改。
 
SQL> conn scott/tiger;
已连接。
 
查看当前用户:
 
SQL> show user;
USER 为 "SCOTT"


 

查看当前用户下有哪些表:

SQL> select TABLE_NAME from user_tables;
 
TABLE_NAME
------------------------------
SALGRADE
BONUS
EMP
DEPT
 
SQL>


 

问题解决。


你可能感兴趣的:(oracle,服务器,笔记本,Copyright)