Commit Graph

26 Commits

Author SHA1 Message Date
Marius
ac2340c967 Oracle DR: Complete Windows VM implementation and cleanup
Major changes:
- Implemented Windows VM 109 as DR target (replaces Linux LXC)
- Tested RMAN restore successfully (12-15 min RTO, 24h RPO)
- Added comprehensive DR documentation:
  * DR_WINDOWS_VM_STATUS_2025-10-09.md - Current implementation status
  * DR_UPGRADE_TO_CUMULATIVE_PLAN.md - Plan for cumulative incremental backups
  * DR_VM_MIGRATION_GUIDE.md - Guide for VM migration between Proxmox nodes
- Updated DR_WINDOWS_VM_IMPLEMENTATION_PLAN.md with completed phases

New scripts:
- add_system_key_dr.ps1 - SSH key setup for automated transfers
- configure_listener_dr.ps1 - Oracle Listener configuration
- fix_ssh_via_service.ps1 - SSH authentication fix
- rman_restore_final.cmd - Working RMAN restore script (tested)
- transfer_to_dr.ps1 - FULL backup transfer (renamed from 02_*)
- transfer_incremental.ps1 - Incremental backup transfer (renamed from 02b_*)

Cleanup:
- Removed 19 obsolete scripts for Linux LXC DR
- Removed 8 outdated documentation files
- Organized project structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 18:54:08 +03:00
Marius
6a6ffe84af standby roa vm windows 2025-10-08 15:33:07 +03:00
Marius
a68f6c381f Fix: Preserve original encoding in claude-mcp-toggle
The save_config function was using json.dump with default ensure_ascii=True,
which converted all Romanian characters to \uXXXX escape sequences, making
the entire ~/.claude.json file appear modified even when only changing MCP
server configuration for a specific project.

Added ensure_ascii=False to preserve original UTF-8 encoding and minimize
file changes to only the intended MCP server modifications.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 15:27:16 +03:00
Marius
dfc64ec632 Add Claude Code MCP Server Manager utility and Oracle DR troubleshooting
- Add claude-mcp-toggle: CLI tool for managing MCP servers
  - Enable/disable individual MCP servers
  - Enable/disable all servers
  - Set specific servers (disable all, enable selected)
  - Interactive mode with menu
  - List servers with enabled/disabled status
- Add comprehensive README with usage examples
- Add Oracle DR restore troubleshooting documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 14:58:23 +03:00
Marius
d5bfc6b5c7 Add Oracle DR standby server scripts and Proxmox troubleshooting docs
- Add comprehensive Oracle backup and DR strategy documentation
- Add RMAN backup scripts (full and incremental)
- Add PowerShell transfer scripts for DR site
- Add bash restore and verification scripts
- Reorganize Oracle documentation structure
- Add Proxmox troubleshooting guide for VM 201 HA errors and NFS storage issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 13:37:33 +03:00
Marius
95f76d7ffb Fix: Add LXC container shutdown to UPS emergency shutdown script
The ups-shutdown-cluster.sh script was missing LXC container shutdown
functionality, only shutting down VMs. This could leave containers
running during UPS power failure, causing ungraceful shutdown.

Changes:
- Added Step 2: LXC container shutdown on all cluster nodes
- Uses 'pct list' to find running containers
- Shuts down each container with 60s timeout
- Parallel shutdown with '&' for speed
- Both local (pvemini) and remote nodes (pve1, pveelite)
- Updated step numbers (now 6 steps total vs 5 before)
- Fixed log_message() to use dynamic timestamp
- Fixed node name comment (pve2 → pveelite)

Shutdown order:
1. VMs on all nodes (timeout 60s)
2. LXC containers on all nodes (timeout 60s) [NEW]
3. Wait 90 seconds for graceful shutdown
4. Secondary nodes shutdown (pve1, pveelite)
5. Wait 30 seconds
6. Primary node shutdown (pvemini)

This matches the behavior in ups-maintenance-shutdown.sh which already
had LXC support.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 21:49:28 +03:00
Marius
cc72a5f96e Add UPS battery replacement procedure and maintenance shutdown script
Adds complete procedure for replacing UPS battery when entire cluster
is powered by the same UPS, requiring full cluster shutdown.

New files:
- scripts/ups-maintenance-shutdown.sh: Automated orchestrated shutdown
  for maintenance operations with confirmation prompts and progress display
- docs/UPS-BATTERY-REPLACEMENT.md: Complete step-by-step guide for battery
  replacement including pre-shutdown, physical replacement, and post-startup
  verification procedures

Features:
- Orchestrated shutdown: VMs → LXC containers → secondary nodes → primary
- Interactive confirmation before shutdown
- Color-coded progress indicators
- Countdown timers for each phase
- Post-replacement verification checklist
- Troubleshooting guide for common issues
- Recovery procedures for cluster/quorum problems

The procedure accounts for all 3 cluster nodes (pve1, pvemini, pveelite)
being on the same UPS, requiring complete infrastructure shutdown.

Documentation includes:
- When to replace battery (based on monthly test results)
- Pre-planning and user notification templates
- Physical battery replacement safety procedures
- Cluster recovery and VM restart procedures
- Post-replacement testing and verification
- 24-hour and 1-week monitoring checklists

Estimated maintenance window: 30-60 minutes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 21:46:28 +03:00
Marius
87b9709a0d Add complete UPS monitoring system with monthly battery testing
This commit adds a comprehensive UPS monitoring and management system for
the Proxmox cluster with automated shutdown orchestration and monthly
battery health testing.

Features:
- NUT (Network UPS Tools) configuration for INNO TECH USB UPS
- Automated cluster shutdown on power failure (3-minute grace period)
- Monthly automated battery testing with health evaluation
- Email notifications via PVE::Notify system
- WinNUT monitoring client for Windows VM 201

Components added:
- config/: NUT configuration files (ups.conf, upsd.conf, upsmon.conf, etc.)
- scripts/ups-shutdown-cluster.sh: Orchestrated cluster shutdown
- scripts/ups-monthly-test.sh: Monthly battery test with email reports
- scripts/upssched-cmd: Event handler for UPS state changes
- docs/: Complete installation and usage documentation

Key findings:
- UPS battery.charge reporting has 10-40 second delay after test start
- Test must monitor voltage drop (1.5-2V) and charge drop (9-27%)
- Battery health evaluation: EXCELLENT/GOOD/FAIR/POOR based on discharge rate
- Email notifications use Handlebars templates without Unicode emojis for compatibility

Configuration:
- UPS: INNO TECH (Voltronic protocol, vendor 0665:5161)
- Primary node: pvemini (10.0.20.201) with USB connection
- Monthly test: cron 0 0 1 * * /opt/scripts/ups-monthly-test.sh
- Shutdown timer: 180 seconds on battery before cluster shutdown

Documentation includes complete installation guides for NUT server,
WinNUT client, and troubleshooting procedures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 21:39:46 +03:00
Marius
238c02fdf0 mutat scripturi 2025-10-06 18:53:45 +03:00
Marius
f3fca1f96e Update Proxmox HA monitoring script - remove qdevice support
Changes:
- Remove qdevice verification (qdevice no longer exists in cluster)
- Fix cluster nodes detection (updated pvecm status output format)
- Add --help parameter with complete usage documentation
- Update notification templates (remove qdevice references)
- Simplify quorum check (only verify total_votes = expected_votes)

The script now correctly monitors:
- HA Services (pve-ha-lrm, pve-ha-crm)
- Cluster Quorum (3/3 votes)
- Online nodes (3 nodes detected via Membership information)

Tested successfully on pvemini.romfast.ro (10.0.20.201)
Status: SUCCESSFUL with all checks passing

Also updated proxmox-ssh-guide.md with current cluster configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 18:48:05 +03:00
Marius
8795b92887 Add Oracle 10g compatible version of scrie_jc_2007
- Created scrie_jc_2007_oracle10g.sql with FOR LOOP instead of FORALL
- Resolves PLS-00436 error on Oracle 10.2.0.5 and older versions
- Added README_ORACLE10G.md with technical documentation
- Added INSTRUCTIUNI_ORACLE10G.txt with client instructions
- Main version (scrie_jc_2007.sql) remains optimized with FORALL for Oracle 11g+

Performance: ~20-50ms for <10k rows (vs 15-30ms FORALL, but 2400x faster than old MERGE)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 13:03:19 +03:00
Marius
88b87a58c0 Add Oracle connection settings documentation
- Created CONEXIUNI-ORACLE.md with complete connection details
- Oracle XE 21c Docker (LXC 108): CDB XE with PDBs ROA and ROA2
- Oracle 10g VM 107 Windows: connection strings and migration notes
- Updated SYS/SYSTEM passwords to romfastsoft (CONTAINER=ALL)
- Connection strings for SQL*Plus, JDBC, and TNS
- Troubleshooting commands and useful queries
- Export/import examples for Data Pump

PDB ROA2 fully configured:
- CONTAFIN_ORACLE and FIRMANOUA schemas imported
- 232 public synonyms created
- 149 grants to PUBLIC
- All critical packages VALID (PACK_CONTAFIN, PACK_UPDATE, PACK_UTILS, PACK_DREPTURI)
- SYS custom objects: AUTH_PACK, UPDATESQLPLUS, EXECUTESCRIPTOS, UTL_MAIL
- Ready for DMP template exports

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 19:05:20 +03:00
Marius
f894544d9c Optimize scrie_jc_2007: Replace FOR LOOP with FORALL BULK operations
- Replace row-by-row processing with FORALL bulk UPDATE/INSERT/DELETE
- Improve readability: l_data(i) → S(i), l_data(l_insert_indices(i)) → SI(i)
- Use dedicated collections: S (source), SI (insert), SD (delete)
- Reduce context switches from 3*N to 3 operations
- Performance improvement: ~15-30ms vs ~80-120ms (3-4x faster for 10k rows)
- Maintain exact same business logic as original implementation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 18:26:23 +03:00
Marius
9f7e9779d2 Optimize scrie_jc_2007: Replace long MERGE with BULK COLLECT cursor loop
- Replaced 1,886-line MERGE statement with cursor loop + BULK COLLECT to avoid Oracle XE internal bugs with very long MERGE statements
- Reduced code size from 1,925 to 1,861 lines (-64 lines, -3.3%)
- Benefits:
  * Single SELECT execution (data loaded into PGA memory via BULK COLLECT)
  * Zero temporary table writes
  * Minimal PL/SQL overhead (~30-50ms for <10k rows)
  * Uses c_source%ROWTYPE for automatic structure adaptation
  * Preserves original alias 'S' for consistency
  * Maintains exact logic: UPDATE → DELETE (if nStergere + all zeros) → INSERT
- Added backup file: scrie_jc_2007_original_merge_backup.sql
- Added reusable transformation script: merge_to_bulk_collect.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 16:49:46 +03:00
Marius
02ef8775ab oracle migrare 2025-10-01 16:08:13 +03:00
Marius
b414b3c338 vm 107 monitor 2025-09-30 02:12:25 +03:00
Marius
24c8c75eb6 proxmox monitori 2025-09-30 02:06:34 +03:00
Marius
e3085884d9 migrare oracle central 2025-09-30 01:41:58 +03:00
Marius
ad07606de0 oracle install LXC docker 2025-09-30 01:27:33 +03:00
Marius
87785f703a proxmox 2025-09-29 15:23:31 +03:00
Marius
b83983b6ed scrie jtva 2025-09-23 11:32:03 +03:00
Marius
f2880f1ef7 Update system prompt and create D300 migration script
- Enhanced system_prompt.md with mandatory initial questions, explicit examples, operation types, error handling, and BEGIN/END structure requirements
- Created ff_2025_09_10_01_CONTABILITATE_D300.sql migration script for DECONTTVA table with DELETE/INSERT approach
- Removed obsolete files: CLAUDE.md, README.md, CSV input files
- Updated input/scrie_jc_2007.sql

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 15:45:46 +03:00
Marius
3c61b5f617 test 2025-09-09 12:12:19 +03:00
Marius
865052597a scrie_jc 2025-08-19 14:27:23 +03:00
Marius
1afc7dc29b urlwatch 2025-08-12 10:15:47 +03:00
Marius
82950b81a5 Initial commit: Romanian ERP database migration system
Complete project setup with:
- PACK_MIGRARE utility package
- Migration script examples and patterns
- Comprehensive documentation in CLAUDE.md and README.md
- System instructions for SQL generation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 16:55:07 +03:00