linux創建表空間
⑴ 如何用linux用命令創建ORACLE資料庫表空間和用戶
先su 到 oracle用戶,SYS用戶以DBA身份登陸
//創建臨時表空間
sql>create temporary tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 5000M autoextend on;
//創建數據表空間
SQL>create tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 500M autoextend on;
(這些只是例子,具體數據文件的路徑,大小,都要你自己改,這里的是不自動擴展,你如果想自動擴展,autoextend on next 50m maxsize 2048m,上網查一下就可以了)
//創建用戶並指定表空間
SQL> create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//給用戶授予許可權
SQL> grant connect,resource to username;
⑵ 如何創建ORACLE大文件表空間
如何創建ORACLE大文件表空間
SQL>CREATE BIGFILE TABLESPACE 表名
datafile 'd:\ndo\ddo\表名.DBF『
SIZE 500M AUTOEXTEND ON;
SQL>Create Bigfile tablespace bf_images_xp
datafile 'e:\datacenter\bf\bf_images_xp.dbf' size 500M Autoextend on;
//說明如下:
//創建一個大表空間,名稱為:bf_images_xp,數據文件為e:\datacenter\bf\bf_images_xp.dbf
//初始化大小為500M,且文件自動增長
SQL>create bigfile tablespace bf_v_xp
datafile 'e:\datacenter\bf\bf_v_xp.dbf' size 500M autoextend on;
其中BIGFILE表示創建 的表空間是大文件表空間,
DATAFILE指定組成大文件表空間的大文件(上海硬碟數據恢復文件),
SIZE表示大文件的初始大小:
AUTOEXTED ON表示允許大文件自動擴張!
網友資料:供參考!
發現表空間文件容量與DB_BLOCK_SIZE有關,
在初始建庫時,DB_BLOCK_SIZE要根據實際需要,
設置為4K,8K、16K、32K、64K等幾種大小,
ORACLE的物理文件最大隻允許4194304個塊(由操作系統決定),
smallfile tablespace表空間文件的最大值為 4194304×DB_BLOCK_SIZE/1024M。
即:
4k最大表空間為:16384M=16G
8K最大表空間為:32768M=32G
16k最大表空間為:65536M=64G
32K最大表空間為:131072M=128G
64k最大表空間為:262144M=256G
//---------------------------------------------------------------------
oracle bigfile tablespace 大文件表空間 ----------------------------
Oracle 10g 新增的表空間類型:大文件 (Bigfile) 表空間。
大文件表空間從某種角度來說提高了 Oracle 在 VLDB 上的管理能力。
只有自動段空間管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空間。
大文件表空間只能包含一個文件,但是文件可以達到 4G 個數據塊大小。
(以下用 BFT 指代 BIGFILE Tablespace。BFT 可以和以下存儲技術結合使用:
自動存儲管理(ASM) LVM OMF
理論上的 BFT 可以達到下面所列的值:
數據塊大小(單位:K) BFT 最大值(單位:T)
2k 8T
4k 16T
8k 32T
16k 64T
32k 128T
在實際環境中,這還受到操作系統的文件系統的限制。
BFT基本操作
10g 資料庫在創建的時候,會指定默認的表空間類型。
如果不特殊指定的話,默認為 SMALLFILE 類型的表空間。
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
這種情況下,如果我們創建表空間的時候不指定類型,那麼默認創建的都是 SMALLFILE 類型的表空間。
修改資料庫默認的表空間類型
可以通過 ALTER DATABASE 命令來修改資料庫默認的表空間類型:
SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;
Database altered.
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
SQL>
SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;
創建 BIGFILE 類型的表空間,只需指定額外的一個參數 BIGFILE 即可,
其他和原有創建表空間語法類似:
CREATE BIGFILE TABLESPACE bftbs DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf' SIZE 5M;
DBA_TABLESPACES (USER_TABLESPACES)與 V$TABLESPACE 這兩個視圖可以查看 BIGFILE 表空間的相關信息。
先看看 DBA_TABLESPACES 在 10g 中有了什麼變化:
SQL> desc DBA_TABLESPACES
SQL>
和 9i 相比,
DBA_TABLESPACES 視圖多了兩列:RETENTION 和 BIGFILE。
其中 BIGFILE 列說明該表空間是否為 BFT:
SQL> SELECT tablespace_name, bigfile FROM dba_tablespaces;
8 rows selected. V$TABLESPACE 視圖相對 9i 也增加了新的列:
SQL> desc V$TABLESPACE Name
其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。
BFT 屬性
BFT有一些特有的屬性。
1.每個表空間只能包含一個數據文件。如果試圖添加新的文件,則會報告 ORA-32771 錯誤:
SQL> ALTER TABLESPACE bftbs
ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;
ALTER TABLESPACE bftbs * ERROR at line 1:
ORA-32771: cannot add file to bigfile tablespace
2.只有自動段空間管理的 LMT (locally managed tablespaces ) 支持 BFT
SQL> CREATE BIGFILE TABLESPACE bftbs02
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M
EXTENT MANAGEMENT DICTIONARY;
CREATE BIGFILE TABLESPACE bftbs02 * ERROR at line 1:
ORA-12913: Cannot create dictionary managed tablespace
SQL> CREATE BIGFILE TABLESPACE bftbs02
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M
SEGMENT SPACE MANAGEMENT MANUAL;
CREATE BIGFILE TABLESPACE bftbs02 * ERROR at line 1:
ORA-32772: BIGFILE is invalid option for this type of tablespace
3.相對文件號(RELATIVE_FNO)為1024 ( 4096 on OS/390)
因為BFT只有一個數據文件,所以其相對文件號也是固定的:1024
SQL> SELECT tablespace_name, file_id, relative_fno
FROM dba_data_files;
SQL>
4.rowid的變化
在 BFT 上存儲的表的 ROWID 與 smallfile 表空間上的 rowid 結構有些不同的。
要正確得到 rowid 信息,dbms_rowid 包增加了一個新的參數ts_type_in來解決這個問題。
參考這個範例:
SQL> SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')
FROM foo;
24
SQL>
你可以創建多大的表空間?
我們在前面提及,BFT 還受到操作系統的文件系統的限制。
下面我們以 Linux 操作系統為例:
SQL> SHOW parameters db_block_size
db_block_sizeinteger 8192
SQL>
也就是說,理論上我們可以創建最大 32T
⑶ oracle 在Linux怎麼在指定的目錄下建表空間
1、你的指定目錄得有Oracle讀寫許可權。
2、給你一個示例:
CREATE TABLESPACE test1 DATAFILE
'/home/oracle/database/test1_01.dbf' SIZE 50M REUSE AUTOEXTEND ON ;
⑷ 如何在Linux下創建oracle資料庫的表空間和用戶
先su 到 oracle用戶,SYS用戶以DBA身份登陸
//創建臨時表空間
SQL>create temporary tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 5000M autoextend on;
//創建數據表空間
SQL>create tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 500M autoextend on;
(這些只是例子,具體數據文件的路徑,大小,都要你自己改,這里的是不自動擴展,你如果想自動擴展,autoextend on next 50m maxsize 2048m,上網查一下就可以了)
//創建用戶並指定表空間
SQL> create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//給用戶授予許可權
SQL> grant connect,resource to username;
⑸ linux怎麼修改mysql資料庫臨時表空間大小
以MySQL 8.0 來說,通過查看 8.0 的官方文檔得知,8.0 的臨時表空間分為會話臨時表空間和全局臨時表空間,會話臨時表空間存儲用戶創建的臨時表和當 InnoDB 配置為磁碟內部臨時表的存儲引擎時由優化器創建的內部臨時表,當會話斷開連接時,其臨時表空間將被截斷並釋放回池中;也就是說,在 8.0 中有一個專門的會話臨時表空間,當會話被殺掉後,可以回收磁碟空間;而原來的 ibtmp1 是現在的全局臨時表空間,存放的是對用戶創建的臨時表進行更改的回滾段,在 5.7 中 ibtmp1 存放的是用戶創建的臨時表和磁碟內部臨時表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途發生了變化,5.7 版本臨時表的數據存放在 ibtmp1 中,在 8.0 版本中臨時表的數據存放在會話臨時表空間,如果臨時表發生更改,更改的 undo 數據存放在 ibtmp1 中;
總結:在 mysql5.7 時,殺掉會話,臨時表會釋放,但是僅僅是在 ibtmp 文件里標記一下,空間是不會釋放回操作系統的。如果要釋放空間,需要重啟資料庫;在 mysql8.0 中可以通過殺掉會話來釋放臨時表空間。
⑹ 操作系統是linux,資料庫是oracle,如何給表空間加一個數據文件,數據文件為10G,該怎麼辦
那幾位不懂就別亂說了 樓主明顯用的ASM ,而且已經把絕對路徑之類的都告訴你了。你就直接把語句給他不就完了,
進入sqlplus後執行如下語句。
alter tablespace '名稱' add datafile '+DATA/crmdb/datafile/kgdb_data1.dbf' size 10G;
或者在linux 系統下 oracle用戶中直接執行如下語句。
echo 'alter tablespace '名稱' add datafile '+DATA/crmdb/datafile/kgdb_data1.dbf' size 10G;'|sqlplus "/as sysdba"
⑺ Linux 下如何重新分配磁碟空間
1.
如果重新分配磁碟會破壞原先的文件系統,會丟失數據,如果要重新分配磁碟,必須做下數據備份和數據遷移。
2.
其實最簡單一種方法就是做個nfs掛載到資料庫的那個目錄給資料庫用。
3.
或者利用dd出一個文件給資料庫用,具體操作如下:
假設我們需要512M的系統空間,我們就dd出一個512M的文件。
# dd if=/dev/zero of=/disk_file bs=1M count=512
將文件格式化成ext3文件系統。
# mkfs.ext3 /disk_file
手動掛載一下。
# mount -o loop /disk_file /db
加入到fstab中,方便以後開機自動掛載。
# grep disk_file /etc/fstab
/disk_file
/db
ext3
loop,default
0 0
# mount -a
查看空間使用狀態
# df -Th | grep disk
/disk_file
ext3
496M
19M
452M
4% /db
⑻ linux oracle 一次最多創建多少個g的表空間
單個數據文件最大支持32G,表空間可以最N個數據文件組成。
⑼ 用友nc5.7 linux 中oracle創建表空間問題
只需另建一個用戶即可,表空間可以共用,前提是這幾個表空間空間在裝下第一個帳套後還有足夠的空間可以使用,不然要給不夠的表空間增加數據文件來擴大表空間
⑽ linux系統中mysql資料庫怎麼查看錶空間
linux系統進入mysql資料庫的方法:
連接MYSQL:
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
1、連接到本機上的MYSQL。
首先在打開DOS窗口,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>
2、連接到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令: exit (回車)
一個建庫和建表以及插入數據的實例:
create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key, //id設置為主關鍵字,並自動設值,也就是添加的時候,你不必向ID欄位寫內容
name char(10) not null,
address varchar(50) default '深圳', //設置默值為深圳
year date
); //建表結束
//以下為插入欄位
insert into teacher values('','glchengang','建平一中','1976-10-10'); //ID不用寫內容
insert into teacher values('','jack','建平一中','1975-12-23');