Although, there are heaps of fundamental changes between Oracle & Cassandra,
Just for fun, or for nomenclature or for commands or similar features are listed here , which may provide handy information to Oracle DBA's
Oracle Keyword | Cassandra Feature / Nomenclature |
SGA | Java Heap Memory |
Buffer Cache | Memtables |
LRU List | Parition Index Summary Cache |
Buffer Cache | Partition Key Cache |
KeepPool/Result Cache | Row Cache |
Background Process | Nothing Like that |
SQLPLUS | CQLSH |
TNS | THRIFT |
Dictionary Cache | Nothing Like That |
Tablespace | Keyspace |
Table | Column Family/Table |
Datafiles | SSTABLES |
Index | Index for partition key |
Partition Key for row level | Partition Key as column level to store relevant rows |
Merge Partition | Compaction of SSTABLES |
sql_trace = on | tracing on |
C and ANSI SQL | Java and CQL |
Schema | Keyspace |
User | User |
SYSDBA | SuperUser |
Backup Copies | SNAPSHOTS |
Incremental | Incremental Backups |
redolog | commitlog |
undo | tombstone |
Temp | Data Actually Stores in Order no need of temp |
Interconnect Protocol RDP/UDP | Gossip Protocol |
Network /Disk Heartbeat | Only one heartbeat network heartbeat in messages |
Master / Slave Nodes | Peer Nodes (no master) indeed every node act as coordinator |
Shared Storage | Local Storage to each node |
ASM Striping | Tokens: Data Stripes using token range at node level |
ASM Mirroring | Replication Factor: Data Mirrors across nodes using RF=ONE, ALL, N.. |
Disk Repair Time | Hinted Handoffs |
Prefered_read_failgroup, diskgroup level | table level / query level CL=QUORUM, LOCAL, ONE, ALL |
init.ora or spfile.ora | cassandra.yaml in /softwarelocation/conf/ |
redo log sizes & location | commitlog size determined by parameters in cassandra.yaml file commitlog_directory |
redo log flush | commitlog flush determined by parameter commitlog_segment_size_in_mb,commitlog_sync_period_in_ms,commitlog_sync |
archives | commitlog will be copied as archives determined by parameter cassandra/conf/commitlog_archiving.properties |
alert log/crsd.log/node.log | Log located at /cassandrasoftware/clustername/nodename/logs/system.log |
crsctl / srvctl | nodetool |
Rebalance of Data in diskgroups | nodetool repair or nodetool repair -st -et |
private network or private ips | no private ip's |
OCR/Voting Disk | Nothing Like that, but maintains list of peer nodes to communicate using seeds parameter in cassandra.yaml |
scn_to_timestamp or rowscn functions | writetime function |
alter session set schema | use keyspace |
dbms_metadata.get_ddl | desc tablename or describe keyspace shows metadata |
v$asm_operation, rebalance operation | nodetool netstats or nodetool tpstats |
cssd.log (disk heartbeat and network heartbeat) | nodetool gossipinfo |
size of table: bytes in dba_tables | Because the table data is striped across the nodes, For each node, calculate Space used (total), bytes: output from
nodetool cfstats keyspace.tablename
|
num of rows in table: num_rows in dba_tables | Because the table row/columns are striped across the nodes, for each node, calculate Number of Keys (estimate) from
Number of keys (estimate): Number of keys (estimate): 10112 |
size of Tablespace / Schema: sum(bytes) in dba_segments | For each node, calculate the Space Used (total), bytes: output from
nodetool cfstats system | grep "Space Used (total)" | awk '{ SUM += $5} END { print SUM/1024/1024 }' |
Size of Buffer Cache | For each node, calculate the each keyspace memtables count
nodetool cfstats | grep "Memtable data size" | awk '{ SUM += $5} END { print SUM/1024/1024 }' |
Flush Buffer Cache | nodetool flush keyspace tablename |
Size of result cache | Row Cache |
undo_retention | gc_grace_seconds for holding tombstones |
addnode.sh | nodetool join |
crsctl delete node | nodetool decomission
and then when status show decommissioned , nodetool remove token |
result cache size / keep pool size | row_cache_size_in_mb |
multiple dbwr writers | memtable_flush_writers parameter in cassandra.yaml parameter file |
buffer cache flushing (3 seconds,ckpt etc) | memtable_cleanup_threshold parameter in cassandra.yaml |
Shutdown instance, srvctl stop instance | nodetool -h $(hostname) -p 8080 disablegossip
nodetool -h $(hostname) -p 8080 dissablethrift nodetool -h $(hostname) -p 8080 drain /etc/init.d/cassandra stop |
crsctl status cluster | nodetool status o nodetool ring or nodetool describecluster |
rman>backup tablespace tag 'today' | For each node,
backup keyspace -t today backup keyspace.table -t today |
rman> backup incremental tag 'incr' | Just enable incremental_backups: true in cassandra.yaml file, which creates incremental snapshots when take snapshot using backup keyspace -t |
rebuild index or reorg table | rebuild index keyspace tablename idx1, idx2 |
logical recovery
rman> recover block 57; rman> recover datafile |
logical recovery at table level
scrub [keyspace] [tablename] [-s|--skip-corrupted] |
restricted mode? | nodetool drain |
statistics | Nothing like that |
Suresh Gandhi you ROCK as Always !!!
very useful articles and posts
Thank Carey,
I have completed the full posts and dedicated a page for that. Please go through if need and it may be helpful.
http://db.geeksinsight.com/cassandra/
Hope and wish all good with you.
-Thanks
Suresh
Hi Buddy
I am oracle DBA and want to learn cassendra. please share any good book or blogs for begineers.
Neeraj, I have tried to writeup some articles which I believe you already gone through. If you want to learn more I suggest to read the cassandra documentation which is very nice.
-Thanks
Suresh
Hi Suresh anna,
Cassandra articles are really helpfull .
As always you rock .
ThankYou Suresh for sharing knowledge to everyone. Appreciate for all your work and its really awesome.
Free courses:
https://academy.datastax.com/courses
Regards
Srikanth