linux下oracle数据库操作

linux安装oracle服务

略,参考https://www.cnblogs.com/zhangboyu/p/7449203.html

数据库服务的启动与关闭

使用oracle用户登陆或者切换至oracle用户  su - oracle

启动:1启动监听   2启动实例

关闭:1关闭实例   2关闭监听

查看监听状态:lsnrctl status

监听启动:lsnrctl start

监听关闭:lsnrctl stop

操作实例时先使用管理员账号连接数据库(sqlplus / as sysdba)

启动实例:startup

关闭实例:shutdown

创建用户和表空间

1.登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)

su - oracle

2.以sysdba方式来打开sqlplus,命令如下: sqlplus / as sysdba

sqlplus / as sysdba

  或者打开sqlplus /nolog   以管理员身份登录: conn sys/cjqmima as sysdba

conn sys/cjqmima as sysdba

3.创建临时表空间:

--查询临时表空间文件的绝对路径。如果需要的话,可以通过查询来写定绝对路径。一般用${ORACLE_HOME}就可以了  
select name from v$tempfile;  
create temporary tablespace CJQ_TEMP tempfile '${ORACLE_HOME}\oradata\CJQ_TEMP.bdf' size 100m reuse autoextend on next 20m maxsize unlimited;  

4.创建正式表空间

--查询用户表空间文件的绝对路径:
select name from v$datafile;
create tablespace CJQ datafile '${ORACLE_HOME}\oradata\CJQ.dbf' size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

5.创建用户和密码,指定上边创建的临时表空间和表空间

create user cjq identified by cjq default tablespace CJQ temporary tablespace CJQ_TEMP;

用户赋权

grant dba to cjq;
grant connect,resource to cjq;
grant select any table to cjq;
grant delete any table to cjq;
grant update any table to cjq;
grant insert any table to cjq;
#操作表空间的权限
grant unlimited tablespace to cjq;

查看用户所有权限

select * from dba_sys_privs where grantee = 'CJQ'

select * from dba_role_privs where grantee = 'CJQ'

撤销权限

revoke 角色|权限 from cjq

ORA-01045: user lacks CREATE SESSION privilege解决办法

错误原因没有赋予权限(登陆权限session)

解决办法:grant create session,resource to 用户名;

ORA-12145:TNS:无法解析指定的连接标识符

检查tnsnames.ora配置

在客户端的安装路径下,我的是D:\oracle\instantclient_12_1\NETWORK\ADMIN,创建一个文件,名为:tnsnames.ora,如果之前创建过了,则直接打开住里追加就行了。在tnsnames.ora中追加如下内容:

SID名 =

  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SID名)
  )

注意SID名前面不能有任何其他字符,尤其是空格!

修改用户名名称和密码

查询需要修改的用户名的编号:select user#,name from user$;(取对应的user#,假设user#等于66)

修改用户名称:update user$ set name='新的用户名称' where user#=66;

系统会提示:1 row updated.说明修改成功

输入:commit;提交所作修改。

ALTER USER 用户名 IDENTIFIED BY 新密码;

输入:commit;(回车)提交所作修改即可

修改用户默认表空间

alter user cjq default tablespace CJQ temporary tablespace CJQ_TEMP;

修改表空间名称以及对应物理文件名称

1.表空间名称修改

alter tablespace CJQ_TEST rename to CJQ

2.是修改后的表空间离线

alter tablespace CJQ offline

3.修改linux上表空间对应的物理文件名称(改成期望文件名称)

先查看所有表空间对应的物理文件相对路径

select * from dba_data_files
linux后台进入表空间对应物理文件的上一级目录,修改文件名称
mv cjq_test.dbf cjq.dbf
4.指定表空间物理文件名称替换
alter tablespace CJQ rename datafile '/u01/app/product/12.2.0/cjq_test.dbf' to  '/u01/app/product/12.2.0/cjq.dbf'
 5.使表空间在线
alter tablespace CJQ online

 

你可能感兴趣的:(linux下oracle数据库操作)