赞
踩
准备从零开始学习oracle。
我说过2016年坚持每周写一篇技术博客。那么从现在开始。
今天遇到一个弱爆了的问题:
前几天换了一台笔记本,在新笔记本上面安装了oracle 11g R2。使用dbca安装完数据库没有报错,就关电脑睡觉了,今天想着开始学习oracle,实现OCP进阶,结果刚开始就犯了一个低级错误。
我登陆服务器,1
2[root@oracle ~]# su - oracle
[oracle@oracle ~]$
切换到oracle用户之后,启动数据库
[1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18oracle@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端口状态1
2[oracle@oracle ~]$ netstat -nat | grep 1521
[oracle@oracle ~]$
奇怪,1521端口没监听。想了半天定位是监听没起来,于是启动监听1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29[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)))
监听程序不支持服务
命令执行成功
重新查看端口状态:
1
2
3oracle@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,肯定要查看当前数据库有哪些用户:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51SQL> 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行。
于是切换到普通用户,想要学习一些对数据库表的基本增删改查,问题来了
1
2
3
4
5
6
7
8
9
10
11
12
13
14SQL> 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目录下想要查看日志时,报错出现了
1
2
3
4
5
6
7
8
9
10
11
12
13
14[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]
问题原因找到了,原来是目录不存在,奇怪,按理说安装数据库的时候这些目录应该自动创建的,先不管了,手动创建这些目录。
1
2
3
4
5
6
7
8
9
10
11
12
13[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
重启数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[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状态,之后再打开数据库,手抖打错了,将错就错吧)1
2
3
4
5
6
7
8
9
10
11
12SQL> 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;
数据库已更改。
之前登陆失败,用户已经被锁住,解锁用户并重置密码为tiger1
2
3
4
5
6
7
8
9
10
11
12
13
14
15SQL> alter user scott account unlockidentified by tiger;
用户已更改。
SQL> alter user scott account unlock;
用户已更改。
SQL> conn scott/tiger;
已连接。
查看当前用户:
SQL> show user;
USER 为 "SCOTT"
查看当前用户下有哪些表:1
2
3
4
5
6
7
8
9
10SQL> select TABLE_NAME from user_tables;
TABLE_NAME
------------------------------
SALGRADE
BONUS
EMP
DEPT
SQL>
问题解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。