测试oracle
sqlplus / as sysdba
select status from v$instance;
navicat连接报错解决
OCI下载地址:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
值得注意的是不管你使用的是32位系统还是64位系统,都应该下载32位的Install Client.
还有一点要注意,Oracle9i或以上版本的,要安装Install Client11或以下;Oracle8或8i服务器,需要安装Install Client10或以下。这个问题不大,因为我们现在的Oracle都是10或11了,注意一下就好。
然后选择左边选项卡中的其他-OCI.
重启软件后即可连接
常用相关sql
--首先查看用户名和用户状态
SELECT username,account_status FROM dba_users ORDER BY username;
--解锁
ALTER USER SCOTT ACCOUNT UNLOCK
--通过修改密码来改变状态
ALTER USER "SCOTT" IDENTIFIED BY "oracle"
# 下面是相反的步骤
--使其密码过期
ALTER USER "SCOTT" PASSWORD EXPIRE
--锁住账号
ALTER USER SCOTT ACCOUNT LOCK
关闭数据库
1)正常关闭 shutdown
2) 立即关闭 shutdown immediate
3) 关闭事务 shutdown transactional
4) 强行关闭 shutdown abort,当然谁都不想碰到这种情况。
启动数据库
启动模式有3种:
Startup nomount (nomount模式)启动实例不加载数据库。
Startup mount (mount模式)启动实例加载数据库但不打开数据库
Startup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令
Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,
oracle的常用命令
dbca 数据库配置器
netca 监听器配置器
netmgr 监听控制器
dbstart 开启数据库
dbshut 关闭数据库
lsnrctl start 开启监听
lsnrctl stop 关闭监听
emctl start dbconsole 开启em控制台
emctl stop dbconsole 关闭em控制台
sqlplus / as sysdba 使用sysdba权限登录当前数据库
帐户有效期
--检查该用戶的profile是哪個,一般都是DEFAULT。
SELECT username,PROFILE FROM dba_users;
--查看该DEFAULT的密码有效期配置。
SELECT * FROM dba_profiles d WHERE d.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
--將密码有效期由180天改成无期限。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
到这里就已经搞定,但是这只是代表了后面用别的用户登录不会出现ORA-28002错误,但之前我们用sys用户登录该用户密码依然会在7天后过期,所以只需要我们在修改一次密码行了。
alter user sys identified by 密码
设置开机启动
[oracle@oracle ~]$ vim /oracle/product/11.2.0/dbhome_1/bin/dbstart
#将ORACLE_HOME_LISTNER=$1
#修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
[oracle@oracle ~]$ vim /oracle/product/11.2.0/dbhome_1/bin/dbshut
#将ORACLE_HOME_LISTNER=$1
#修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
[oracle@oracle ~]$ vim /etc/oratab
#将orcl:oracle/product/11.2.0/dbhome_1:N中最后的N改为Y
创建启动文件
#用root用户执行
[root@oracle ~]$ vim /etc/init.d/oracle
#新增以下内容
#! /bin/bash
# chkconfig: 234 61 61
# description: Oracle 11g AutoRun Service
# /etc/rc.d/init.d/oracle
case "$1" in
start)
# starts oracle listener and instance
echo "Starting Oracle Database:"
su - oracle -lc "lsnrctl start"
su - oracle -lc dbstart
;;
stop)
# shutdown oracle listner and instance
echo "Shuting down Oracle Database:"
su - oracle -lc "lsnrctl stop"
su - oracle -lc dbshut
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: {start|stop|reload|restart}"
exit 1
esac
exit 0
检查脚本是否能正常运行
#用root用户执行
cd /etc/rc.d/init.d
./oracle start
./oracle stop
设置启动文件权限
#用root用户执行
chmod 750 /etc/rc.d/init.d/oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
chkconfig --level 234 oracle on
#备注:如果执行此命令出现oracle 服务不支持 chkconfig,请认真检查/etc/rc.d/init.d/oracle脚本,是否复制到时候缺少了一些字母,本人就是复制的时候少了些字符,导致出现这个问题
chkconfig --add oracle
注意:执行chkconfig时,需要在脚本中添加至少两行注释行(第3步中),第一行告诉chkconfig该服务的运行级别;第二行添加关于服务的简要说明。
重启测试
[root@oracle ~]$ reboot
su - oracle
[oracle@oracle ems]$ lsnrctl status
#如果有未找到命令请使用
su - oracle
进行登录
而不是
su oracle
再每次
source ~/.bash_profile
重启后查看监听状态,如果这样子就是对的
Oracle Enterprise Manager实现
https://localhost:1158/em
发现登录不上去
[oracle@oracle database]$ emctl start dbconsole
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
[oracle@oracle database]$ export ORACLE_UNQNAME=orcl
[oracle@oracle database]$ emctl start dbconsole
OC4J Configuration issue. /oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_oracle.server_orcl not found.
其实产生的这样的情况,可能是em资料库配置不正确或者是dbcotrol没有配置好。
解决:
重建em资料
[oracle@oracle database]$ emca -repos recreate
...
Enter the following information:
Database SID: orcl
Listener port number: 1521
Password for SYS user: oracle
Password for SYSMAN user: oracle
Do you wish to continue? [yes(Y)/no(N)]: y
配置dbcontrol
[oracle@oracle database]$ emca -config dbcontrol db
登录操作
http://localhost.localdomain:1158/em/
SYS
oracle
Oracle11G的EM采用了web方式,并且分成了2个产品,database control和grid control。Grid control需要下载单独的光盘安装。在用DBCA建库的时候,可以选择是否启用dbcontrol,启用的话需要在数据库中建立一个sysman的 schema,用于保存EM的一些数据,这个就是EM的资料库(repository)。使用命令行工具emca可以创建,修改,重建或者删除 dbcontrol的配置。
emca -repos create: 创建新的 Database Control 资料档案库
emca -repos drop: 删除当前的 Database Control 资料档案库
emca -repos recreate: 删除当前的 Database Control 资料档案库并重新创建一个
emca -config dbcontrol db:配置数据库的 Database Control
emca -deconfig dbcontrol db:取消数据库的 Database Control
注:(1)如果服务器上存在多个数据库,必须在启动Database control之前设置ORACLE_SID环境变量
(2)最好使用静态IP地址来配置服务器
重启关闭后无法登陆
时区纠正为东8区
[oracle@oracle database]$ sqlplus / as sysdba
SQL> select dbtimezone from dual;
DBTIME
------
+00:00
SQL> select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
21-MAR-19 05.51.50.088610 PM +08:00
SQL> select u.name||'.'||o.name||'.'||c.name tsltz_column
from sys.obj$ o,sys.col$ c,sys.user$ u
where c.type#=231 and
o.obj#=c.obj# and
u.user#=o.owner#; 2 3 4 5
no rows selected
纠正时间
SQL> alter database set time_zone='+8:00';
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 973080728 bytes
Database Buffers 603979776 bytes
Redo Buffers 7434240 bytes
Database mounted.
Database opened.
SQL> select dbtimezone from dual;
DBTIME
------
+08:00
[oracle@oracle database]$ emctl start dbconsole
参考资料以及有待补全
https://www.oracle.com/technetwork/cn/articles/oem-packs-overview-195704-zhs.html
http://xuexinyu.com/2018/02/24/Linux%E9%9D%99%E9%BB%98%E6%A8%A1%E5%BC%8F%E5%AE%89%E8%A3%85oracle11g/