Tôi chạy oracle 11g
và cần di chuyển table (tbl1)
từ một tablespace (tblspc1)
sang một số khác (tblspc2)
. Cách dễ nhất để làm điều đó là gì?Cách di chuyển bảng từ một vùng bảng này sang bảng khác trong oracle 11g
Trả lời
Hãy thử điều này: -
ALTER TABLE <TABLE NAME to be moved> MOVE TABLESPACE <destination TABLESPACE NAME>
Rất đẹp gợi ý từ IVAN trong ý kiến nên nghĩ thêm trong câu trả lời của tôi
Note: điều này sẽ làm mất hiệu lực chỉ số tất cả của bảng. Vì vậy, lệnh này thường được theo sau bởi
alter index <owner>."<index_name>" rebuild;
[Từ tài liệu] (http://docs.oracle.com/cd/E11882_01/server.112/e25494/tables006.htm#i1106606); và [thêm tại đây] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#i2081902) –
Lưu ý: điều này sẽ làm mất hiệu lực tất cả các chỉ mục của bảng. Vì vậy, lệnh này thường được theo sau bởi "thay đổi chỉ mục
@Ivan: - Thanx Ivan. Nice điểm. Thêm này trong câu trả lời là tốt !! +1 :) –
Hãy thử di chuyển bảng (tbl1) của bạn vào vùng bảng (tblspc2).
alter table tb11 move tablespace tblspc2;
Sử dụng sql
từ sql
: sản lượng
ống này vào một tập tin:
select 'alter index '||owner||'.'||index_name||' rebuild tablespace TO_TABLESPACE_NAME;' from all_indexes where owner='OWNERNAME';
spoolfile sẽ có một cái gì đó như thế này:
alter index OWNER.PK_INDEX rebuild tablespace CORRECT_TS_NAME;
Bạn phải sử dụng "..." xung quanh index_name hoặc người khác bạn sẽ nhận được lỗi "ORA-01418: chỉ mục được chỉ định không tồn tại". Vì vậy, lệnh nên là: chọn 'thay đổi chỉ mục' || chủ sở hữu || '."'|| index_name ||'" xây dựng lại vùng bảng TO_TABLESPACE_NAME; ' từ all_indexes, nơi chủ sở hữu = 'OWNERNAME'; – Jan
bảng Moving:
Lần chạy đầu tiên:
SELECT 'ALTER TABLE <schema_name>.' || OBJECT_NAME ||' MOVE TABLESPACE '||' <tablespace_name>; '
FROM ALL_OBJECTS
WHERE OWNER = '<schema_name>'
AND OBJECT_TYPE = 'TABLE'
<> '<TABLESPACE_NAME>';
Trường hợp <schema_name>
là tên của người dùng. Và <tablespace_name>
là vùng bảng đích.
Kết quả là bạn nhận được các dòng như sau:
ALTER TABLE SCOT.PARTS MOVE TABLESPACE USERS;
Dán kết quả vào tập lệnh hoặc trong nhà phát triển sql oracle như ứng dụng và chạy nó.
chỉ số Moving:
Đầu tiên chạy:
SELECT 'ALTER INDEX <schema_name>.'||INDEX_NAME||' REBUILD TABLESPACE <tablespace_name>;'
FROM ALL_INDEXES
WHERE OWNER = '<schema_name>'
AND TABLESPACE_NAME NOT LIKE '<tablespace_name>';
Dòng cuối cùng trong mã này có thể giúp bạn tiết kiệm rất nhiều thời gian bởi vì nó lọc ra các chỉ số đó đã có trong tablespace đúng.
Kết quả là bạn sẽ nhận được một cái gì đó như:
ALTER INDEX SCOT.PARTS_NO_PK xây dựng lại NGƯỜI SỬ DỤNG TABLESPACE;
Dán kết quả vào tập lệnh hoặc trong nhà phát triển sql oracle như ứng dụng và chạy nó.
Cuối cùng nhưng không kém, LOB di chuyển:
Đầu tiên chạy:
SELECT 'ALTER TABLE <schema_name>.'||LOWER(TABLE_NAME)||' MOVE LOB('||LOWER(COLUMN_NAME)||') STORE AS (TABLESPACE <table_space>);'
FROM DBA_TAB_COLS
WHERE OWNER = '<schema_name>' AND DATA_TYPE like '%LOB%';
này di chuyển LOB đối tượng để các tablespace khác.
Kết quả là bạn sẽ nhận được một cái gì đó như:
ALTER TABLE SCOT.bin $ 6t926o3phqjgqkjabaetqg == $ 0 MOVE LOB (dương lịch) CỬA HÀNG AS (NGƯỜI SỬ DỤNG TABLESPACE);
Dán kết quả vào tập lệnh hoặc trong nhà phát triển sql oracle như ứng dụng và chạy nó.
O và còn một điều nữa:
Vì một lý do nào đó tôi không thể di chuyển chỉ mục loại 'DOMAIN'. Là một công việc xung quanh tôi đã giảm chỉ mục. đã thay đổi không gian bảng mặc định của người dùng thành không gian bảng mong muốn. và sau đó tạo lại chỉ mục. Có một cách tốt hơn nhưng nó hiệu quả với tôi.
- 1. Di chuyển hàng từ bảng này sang bảng khác?
- 2. Làm cách nào để di chuyển các hàng từ bảng này sang bảng khác?
- 3. di chuyển dữ liệu từ bảng này sang bảng khác, phiên bản postgresql
- 4. Chuyển đổi sang một bảng phân vùng
- 5. Làm cách nào để kéo và thả nút từ bảng này sang bảng khác?
- 6. sql: cách sao chép từ một bảng này sang bảng khác
- 7. Cách sao chép các chỉ mục từ bảng này sang bảng khác trong SQL Server
- 8. Phân vùng bảng động trong Oracle
- 9. bản ghi php và mysql từ bảng này sang bảng khác
- 10. cách xác định kích thước của không gian bảng 11g
- 11. Di chuyển dữ liệu từ Excel sang SQL Server bảng
- 12. chèn dữ liệu từ bảng này sang bảng khác trong mysql
- 13. cách di chuyển bảng từ công khai sang giản đồ khác trong Postgres
- 14. Di chuyển các hàng từ TableA sang Bảng lưu trữ
- 15. Di chuyển hàng triệu bản ghi từ bảng MEMORY sang bảng MYISAM
- 16. Kéo và thả hàng của bảng từ một bảng tab sang bảng tab khác - Jquery
- 17. cách chuyển đổi csv thành bảng trong oracle
- 18. Sao chép nguyên tử một bảng MySQL sang bảng khác?
- 19. Sao chép các hàng từ bảng này sang bảng khác, bỏ qua các bản sao
- 20. Tham gia nhiều cột từ một bảng sang cột đơn từ một bảng khác
- 21. Di chuyển bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong MySQL
- 22. Sao chép dữ liệu từ cột này sang cột khác (nằm trong một bảng khác)
- 23. Cách nhập một kết xuất oracle vào một vùng bảng khác nhau
- 24. Chọn Giá trị từ Biến Bảng/Bảng Oracle?
- 25. Di chuyển MySQL sang một bảng có cấu trúc khác nhau
- 26. Sao chép các giá trị từ cột này sang cột khác trong cùng một bảng
- 27. Xóa hàng trong một bảng dựa trên các giá trị hàng trong bảng này và một bảng khác
- 28. Oracle SQL: chọn từ bảng có bảng lồng nhau
- 29. Chuyển đổi bảng trong rst sang LaTeX
- 30. Di chuyển từ Oracle sang Sql Server
Bạn có thể đăng ít nhất những gì bạn đã thử cho đến nay không ?. –