$ export DISPLAY=10.3.3.8:0.0
(10.3.3.8是本机地址,此命令作用是在本机打开图形界面)
$ dbca
此命令作用是打开的工具,将会打开oracle创建实例的图形界面,创建完以后,进入到新创建的实例(以test为例)
$ echo $ORACLE_SID
显示当前的实例id
$ export ORACLE_SID=test
切换到test实例
$ sqlplus / as sysdbs
此命令是以sysdbs全局身份进入sql命令界面
SQL> startup mount;
启动数据库
SQL> create user testuser identified by testuser;
创建用户testuser,密码也是testuser
SQL> grand dba to testuser;
或
SQL> grand connect,resource,dba to testuser;
给testuser授权,dba是管理权限,此外还可以有connect,resource,可授权多个角色。
SQL> conn testuser/testuser;
从当前用户直接切换到新创建的用户
SQL> sqlplus testuser/testuser;
或者退出后直接进入新用户。
遇到的坑:
执行create user testuser identified by testuser;语句时,出现ORA-01109: database not open错误。
找到了解决方法是,在sysdba用户下执行
SQL>alter database open;
但是执行后又报错,提示ORA-01507: database not mounted
SQL> shutdown immediate
先关闭数据库,再重启
SQL> startup mount
重启时,出现ORA-00214: control file '/opt/oracle/app/oracle/oradata/goods/control01.ctl'
version 757 inconsistent with file
'/opt/oracle/app/oracle/fast_recovery_area/goods/control02.ctl' version 755
查了一下,是控制文件不一致导致数据库起不来
找到了上述两个地址的控制文件control01和control02,先备份版本低的control02,然后将高版本的control01拷贝到control02的文件夹下,并改名control02覆盖低版本的control02。
重新进入sql命令界面
先shutdown immediate后,再次执行startup mount
这次启动成功了。
执行alter database open;也成功
可以正常创建用户了。
-----oracle的常用操作-------
su - oracle //切换到数据库用户
echo $ORACLE_SID //查看当前实例
export ORACLE_SID=实例名 //切换当前实例
lsnrctl status //查看监听状态
lsnrctl start //启动监听服务
lsnrctl stop //关闭监听服务
ps -ef|grep oracle //查看数据库服务状态
sqlplus / as sysdba // 以sys用户登入SQL命令,/和as注意要有空格
SQL> select username from dba_users; //查看用户 ,sql语句要加;号
SQL> alter user 用户名 account unlock; // 用户解锁
SQL> alter user 用户名 identified by 新密码; //修改用户密码
SQL>startup ; //启动数据库
SQL>shutdown immediate ;//关闭数据库
SQL>select status from v$instance ;//查看实例状态