Oracle 19c高级压缩兼容ZSTD算法验证及压缩算法指定方法咨询
Hey there! Let's break down your question about Oracle 19c, Advanced Compression, and the ZSTD algorithm clearly:
核心结论
In Oracle 19c, you cannot manually select the ZSTD algorithm for table-level Advanced Compression. The syntax you tried (row store compress advanced zstd or its variations) isn't supported in this version, which is exactly why you're hitting the ORA-01735 invalid option error.
Why RMAN works but table compression doesn't
Your success using ZSTD in RMAN makes perfect sense because RMAN backup compression is a completely separate feature from table-level storage compression. Oracle 19c introduced ZSTD support specifically for optimizing backup size and speed, but this capability doesn't extend to the Advanced Compression option for table data storage. For table-level Advanced Compression in 19c, Oracle uses its own optimized default algorithms (like enhanced LZ77-based compression) and doesn't expose a way to switch to ZSTD.
Your available options
- Stick with 19c's default Advanced Compression: The standard
ROW STORE COMPRESS ADVANCEDalready delivers strong compression for most use cases, balancing space savings and query performance effectively. - Upgrade to a newer Oracle version: Starting with Oracle 21c, you can specify ZSTD for table-level compression using valid syntax like:
ALTER TABLE xtbl ROW STORE COMPRESS ADVANCED USING ZSTD; - Exadata-specific checks (if applicable): If you're running on Exadata, there are additional compression optimizations available, but ZSTD still isn't a selectable option for table storage in 19c.
Your command references
For full context, here's your working RMAN ZSTD configuration:
RMAN> CONFIGURE COMPRESSION ALGORITHM 'ZSTD'; new RMAN configuration parameters: CONFIGURE COMPRESSION ALGORITHM 'ZSTD' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE; new RMAN configuration parameters are successfully stored RMAN> show COMPRESSION ALGORITHM; RMAN configuration parameters for database with db_unique_name DB9ZX are: CONFIGURE COMPRESSION ALGORITHM 'ZSTD' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
And the SQL commands that failed (as expected in 19c):
SQL> alter table xtbl row store compress advanced; Table altered. SQL> alter table xtbl row store compress advanced zstd; alter table xtbl row store compress advanced zstd * ERROR at line 1: ORA-01735: invalid ALTER TABLE option SQL> alter table xtbl row store compress zstd advanced; alter table xtbl row store compress zstd advanced * ERROR at line 1: ORA-01735: invalid ALTER TABLE option
内容的提问来源于stack exchange,提问作者Kishan

