新聞中心
輕松創(chuàng)建Linux表空間實(shí)用指南

站在用戶的角度思考問題,與客戶深入溝通,找到薌城網(wǎng)站設(shè)計與薌城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋薌城地區(qū)。
為了更好地管理數(shù)據(jù)庫,許多數(shù)據(jù)庫管理員使用表空間進(jìn)行分區(qū)和管理。表空間是一個邏輯概念,它是將一個或多個數(shù)據(jù)文件分配給邏輯卷的方式。在Linux上,創(chuàng)建和管理表空間可能比較復(fù)雜,但本文將為您提供一些實(shí)用指南,幫助您輕松地創(chuàng)建Linux表空間。
準(zhǔn)備工作
在開始之前,您需要先準(zhǔn)備好以下的材料:
– 一臺運(yùn)行Linux操作系統(tǒng)的服務(wù)器或虛擬機(jī)
– 一個數(shù)據(jù)庫管理系統(tǒng),例如Oracle、MySQL或PostgreSQL
– 一個適當(dāng)?shù)拿钚泄ぞ?,例如bash、zsh或者PowerShell
– 一個適當(dāng)?shù)木庉嬈?,例如vim、nano或者gedit
– 管理員權(quán)限
創(chuàng)建表空間
在Linux上,創(chuàng)建表空間的步驟可能因數(shù)據(jù)庫管理系統(tǒng)而異。在本文中,我們將通過一個Oracle示例來演示如何創(chuàng)建表空間。
您需要使用SQL*Plus(Oracle的命令行界面)登錄到您的數(shù)據(jù)庫實(shí)例中。如果您的數(shù)據(jù)庫實(shí)例和Linux服務(wù)器不在同一臺機(jī)器上,請確保您已經(jīng)正確地配置了網(wǎng)絡(luò)連接。
登錄到SQL*Plus后,您可以使用以下命令創(chuàng)建一個新的表空間:
“`
CREATE TABLESPACE
DATAFILE ” SIZE
AUTOEXTEND ON NEXT
MAXSIZE
“`
其中,
– “是您要創(chuàng)建的表空間的名稱。
– “是數(shù)據(jù)文件的路徑。您可以在Linux文件系統(tǒng)中選擇任意路徑。請注意,如果您使用了符號鏈接或掛載,表空間可能會受到影響。
– “是數(shù)據(jù)文件的初試大小。例如,您可以使用“100M”表示100兆字節(jié)。
– “是當(dāng)數(shù)據(jù)文件增長時使用的增量。例如,如果您的數(shù)據(jù)庫每天有100MB的增長,您可以使用“100M”作為增量。
– “是數(shù)據(jù)文件的更大允許大小。例如,如果您想讓數(shù)據(jù)文件最多有300GB,您可以使用“300G”作為更大大小。
例如,如果您想創(chuàng)建一個名為“mytablespace”的表空間,數(shù)據(jù)文件位置為“/u01/app/oracle/oradata/mydatabase/mytablespace01.dbf”,文件初試大小為300MB,每次增長為100MB,更大允許大小為500MB,您可以使用以下命令:
“`
CREATE TABLESPACE mytablespace
DATAFILE ‘/u01/app/oracle/oradata/mydatabase/mytablespace01.dbf’ SIZE 300M
AUTOEXTEND ON NEXT 100M
MAXSIZE 500M;
“`
完成后,您應(yīng)該成功地創(chuàng)建了一個名為“mytablespace”的表空間。
管理表空間
在Linux上,管理表空間的過程可以因數(shù)據(jù)庫管理系統(tǒng)而異。在Oracle中,您可以使用以下命令管理表空間:
– 查看表空間:
“`
SELECT * FROM DBA_TABLESPACES;
“`
– 查看表空間的使用情況:
“`
SELECT * FROM DBA_FREE_SPACE;
“`
– 修改表空間的大?。?/p>
“`
ALTER TABLESPACE
RESIZE ;
“`
– 刪除表空間:
“`
DROP TABLESPACE INCLUDING CONTENTS;
“`
請注意,刪除表空間將刪除其中的所有表和數(shù)據(jù)。如果您只想刪除表空間的數(shù)據(jù)文件,但不想刪除其中的表,您可以使用以下命令:
“`
ALTER TABLESPACE
DROP DATAFILE ”;
“`
這將從表空間中刪除指定的數(shù)據(jù)文件,但不會刪除其中的表和數(shù)據(jù)。
結(jié)論
相關(guān)問題拓展閱讀:
- linux怎么修改mysql數(shù)據(jù)庫臨時表空間大小
linux怎么修改mysql數(shù)據(jù)庫臨時表空間大小
先來說說臨時表的概念。 臨時表顧名思義,就是臨時的,用完銷毀掉的表。 數(shù)據(jù)既可以保存在臨時的文件系統(tǒng)上,也可以保存在固定的磁盤文件系統(tǒng)上。 臨時表有下面幾種:
1全局臨時表
這種臨時表從數(shù)據(jù)庫實(shí)例啟動后開始生效,在數(shù)據(jù)庫實(shí)例銷毀后失效。在MySQL里面這種臨時表對應(yīng)的是內(nèi)存表,即memory引擎。
2會話級別臨時表
這種臨時表在用戶登錄系統(tǒng)成功后生效,在用戶退出時失效。在MySQL里的臨時表指的就是以 create temporary table 這樣的關(guān)鍵詞創(chuàng)建的表。
3事務(wù)級別臨時表
這種臨時表在事務(wù)開始時生效,事務(wù)提交或者回滾后失效。 在MySQL里面沒有這種臨時表,必須利用會話級別的臨時表間接實(shí)現(xiàn)。
4檢索級別臨時表
這種臨時表在SQL語句執(zhí)行之間產(chǎn)生,執(zhí)行完畢后失效。 在MySQL里面這種臨時表不是很固定,跟隨MySQL默認(rèn)存儲引擎來變化。比如默認(rèn)存儲引擎是MyISAM,臨時表的引擎就是MyISAM,并且文件生成形式以及數(shù)據(jù)運(yùn)作形式和MyISAM一樣,只是數(shù)據(jù)保存在內(nèi)存里;如果默認(rèn)引擎是INNODB,那么臨時表的引擎就是INNODB,此時它的所有信息都保存在共享表空間ibdata里面。
MySQL 5.7對于InnoDB存儲引擎的臨時表空間做了優(yōu)化。在MySQL 5.7之前,INNODB引擎的臨時表都保存在ibdata里面,而ibdata的貪婪式磁盤占用導(dǎo)致臨時表的創(chuàng)建與刪除對其他正常表產(chǎn)生非常大的性能影響。在MySQL5.7中,對于臨時表做了下面兩個重要方面的優(yōu)化:
MySQL5.7 把臨時表的數(shù)據(jù)以及回滾信息(僅限于未壓縮表)從共享表空間里面剝離出來,形成自己單獨(dú)的表空間,參數(shù)為innodb_temp_data_file_path。
在MySQL5.7 中把臨時表的相關(guān)檢索信息保存在系統(tǒng)信息表中:information_schema.innodb_temp_table_info. 而MySQL 5.7之前的版本想要查看臨時表的系統(tǒng)信息是沒有太好的辦法。
需要注意的一點(diǎn)就是,雖然INNODB臨時表有自己的表空間,但是目前還不能自己定義臨時表空間文件的保存路徑,只能是繼承innodb_data_home_dir。此時如果想要拿其他的磁盤,比如內(nèi)存盤來充當(dāng)臨時表空間的保存地址,只能用老辦法,做軟鏈。舉個小例子:
我現(xiàn)在用的OS是 Ubuntu12.X,想用tmpfs文件系統(tǒng)充當(dāng)臨時表空間,
root@ytt-master-VirtualBox:/usr/local/mysql/data# ln -s/run/shm/ /usr/local/mysql/data/tmp_space2
root@ytt-master-VirtualBox:/usr/local/mysql/data#ls -l | grep ‘shm’
lrwxrwxrwx1 root root 9 Nov 13 10:28tmp_space2 -> /run/shm/
然后把
innodb_temp_data_file_path=tmp_space2/ibtmp2:200M:autoextend
添加到my.cnf里的下面一行
重啟MySQL服務(wù)后,
mysql>select @@innodb_temp_data_file_path\G
***************************1. row ***************************
@@innodb_temp_data_file_path:tmp_space2/ibtmp2:200M:autoextend
1 rowin set (0.00 sec)
先寫一個批量創(chuàng)建臨時表的存儲過程:
DELIMITER$$
USE`t_girl`$$
DROPPROCEDURE IF EXISTS `sp_create_temporary_table`$$
CREATEDEFINER=`root`@`localhost` PROCEDURE `sp_create_temporary_table`(
IN f_cnt INT UNSIGNED )
BEGIN
DECLARE i INT UNSIGNED DEFAULT 1;
WHILE i call sp_create_temporary_table(10);
QueryOK, 0 rows affected (0.07 sec)
如果在以前,我們只知道創(chuàng)建了10張臨時表,但是只能憑記憶或者手工記錄下來臨時表的名字等信息。
現(xiàn)在可以直接從數(shù)據(jù)字典里面檢索相關(guān)數(shù)據(jù)。
mysql> select * frominformation_schema.innodb_temp_table_info;
++++++-+
|TABLE_ID | NAME | N_COLS | SPACE| PER_TABLE_TABLESPACE | IS_COMPRESSED |
++++++-+
| 56 | #sql1705_2_9 | 5 | 36 | FALSE | FALSE |
| 55 | #sql1705_2_8 | 5 | 36 | FALSE |FALSE |
| 54 | #sql1705_2_7 | 5 | 36 | FALSE | FALSE |
| 53 | #sql1705_2_6 | 5 | 36 | FALSE | FALSE |
| 52 | #sql1705_2_5 | 5 | 36 | FALSE |FALSE |
| 51 | #sql1705_2_4 | 5 | 36 | FALSE | FALSE |
| 50 | #sql1705_2_3 | 5 | 36 | FALSE | FALSE |
| 49 | #sql1705_2_2 | 5 | 36 | FALSE |FALSE |
| 48 | #sql1705_2_1 | 5 | 36 | FALSE | FALSE |
| 47 | #sql1705_2_0 | 5 | 36 | FALSE | FALSE |
++++++-+
10rows in set (0.00 sec)
linux怎樣創(chuàng)建表空間的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux怎樣創(chuàng)建表空間,輕松創(chuàng)建linux表空間實(shí)用指南,linux怎么修改mysql數(shù)據(jù)庫臨時表空間大小的信息別忘了在本站進(jìn)行查找喔。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
分享文章:輕松創(chuàng)建linux表空間實(shí)用指南 (linux怎樣創(chuàng)建表空間)
網(wǎng)站地址:http://www.5511xx.com/article/cogdhdi.html


咨詢
建站咨詢
