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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章