Ranil Perera is an IT executive and technology consultant with more than 25 years of experience helping organisations design, modernise and manage business-critical technology platforms.
As Director & CEO of Onsys Technologies, Ranil works with organisations across Australia and the Asia-Pacific region to deliver practical solutions across database technologies, cloud infrastructure, cybersecurity, DevOps, software development and AI.
His background combines deep technical expertise in enterprise database platforms with solution architecture, cloud transformation, IT consulting and business leadership. He has a strong focus on improving system reliability, security, performance and operational efficiency while helping organisations adopt emerging technologies in practical and commercially valuable ways.
Ranil is passionate about working with technology leaders, partners and organisations to solve complex technology challenges, modernise IT environments and build secure, scalable solutions for the future.
Microsoft Certified: Azure Solutions Architect Expert
Microsoft® Certified Solutions Expert: Data Management and Analytics Charter Member
Microsoft® Certified Solutions Expert: Data Platform
Microsoft® Certified Solutions Expert: Business Intelligence
Oracle Cloud Infrastructure 2025 Certified Generative AI Professional
Microsoft Certified: Azure AI Engineer Associate
Microsoft Certified: Azure Administrator Associate
Microsoft Certified: Azure Security Engineer Associate
Learn how to troubleshoot SQL Server Error 845 buffer latch timeouts and Error 5901 checkpoint failures. Includes root causes, diagnostic queries, storage checks, DBCC CHECKDB steps, and remediation guidance.
Learn how to troubleshoot intermittent Azure Site-to-Site VPN connectivity when the tunnel remains connected but application traffic stops. Diagnose IPsec, IKE, traffic selector, Phase 2, DPD and routing issues using Azure VPN Troubleshoot, Log Analytics, PowerShell and VPN Gateway diagnostics.
Importing an Oracle Data Pump dump is more than running impdp. This guide covers dump discovery, character-set validation, tablespace planning, schema remapping, monitoring, troubleshooting and comprehensive post-import verification.
A comprehensive production-focused guide to installing Oracle Database 19c Standard Edition 2 on Oracle Linux 9. Covers OS and kernel compatibility, Oracle prerequisites, storage design, MobaXterm/X11, Oracle Universal Installer errors, Release Updates, DBCA, NLS settings, FRA, RMAN and post-install verification.
Is your PostgreSQL pg_wal directory consuming unexpectedly large amounts of disk space while your standby server contains only recent WAL files? This guide explains how to verify streaming replication, identify what is retaining WAL, troubleshoot replication slots and WAL archiving, and safely allow PostgreSQL to reclaim disk space without manually deleting critical WAL files.
When the filesystem hosting Oracle TEMP tempfiles reaches 100%, simply checking the TEMP tablespace's reported used space is not enough. This guide explains how to determine the physical tempfile size, reusable TEMP space, active TEMP consumers, SQL responsible for TEMP growth, historical usage, and safe remediation options for Oracle 10g and Oracle 19c.
Need to find out which Azure resources were deleted, when they were deleted and who deleted them? This guide explains how to query Azure Activity Logs using Azure CLI and PowerShell, export deletion history to CSV, investigate specific resources, and retrieve records older than 90 days using Log Analytics.
What a SQL Server upgrade, an Always On availability group build or an Azure SQL Managed Instance migration involves in practice — the sequence, the decisions that drive cost, and the failure modes worth planning around.
Published rates, what each model actually includes, and the per-instance arithmetic that decides whether a quote is good value — including why the cheaper headline number is often the more expensive one.
Extended support for SQL Server 2016 ended on 15 July 2026. Here are the four options actually open to an Australian organisation still running it, what each one costs, and how to decide between them.
SQL Server log shipping is a proven disaster recovery solution that maintains one or more secondary copies of a production database by continuously backing up, copying and restoring transaction-log backups.
It is available in SQL Server 2019 and other supported SQL Server versions. It is commonly used when organisations need a cost-effective warm standby database without the clustering requirements and licensing complexity associated with some high-availability technologies.
PostgreSQL logging is essential for troubleshooting, performance monitoring, auditing, and operational support. However, incorrectly configured logging can quickly consume large amounts of disk space and create unnecessary operational risk.
In a recent production scenario, a PostgreSQL 15 environment was generating more than 20 GB of logs per day, with approximately 150 GB of disk space consumed in less than a week.
This article explains how to identify the root cause of excessive PostgreSQL logging, safely reduce log volume, improve rotation and retention, and understand the impact of these changes in a streaming replication environment.
How to Update SQL Server After Cloning and Renaming a Windows Server Cloning a Windows virtual machine is a common way to create a test, development, disaster recovery or migration environment. However, when a SQL Server machine is cloned and the Windows hostname is changed, SQL Server may continue to retain the original server name
How to Find and List Oracle Archive Logs for Specific Dates and RMAN Backups As an Oracle Database Administrator, managing archive logs is a daily reality. Whether you are dealing with a disk space crisis in your Fast Recovery Area (FRA), preparing for a Point-in-Time Recovery (PITR), or auditing database changes, you frequently need to
Building a Debezium CDC Proof of Concept Replicating AWS RDS MySQL to SQL Server on Windows Introduction Many organisations need a reliable way to move operational data from one database platform to another without relying on heavy batch jobs, manual exports, or nightly ETL windows. One practical approach is Change Data Capture, usually called CDC.
Secure Your Reports: How to Enable SSL/TLS Certificate on SQL Server Reporting Services 2019 SQL Server Reporting Services, commonly known as SSRS, is widely used by organisations to publish business reports, dashboards, operational summaries, financial reports, and customer-facing analytics. Because these reports often contain sensitive business information, securing access to the SSRS web portal
Secure Your SQL Server 2019: A Practical Guide to Enabling SSL/TLS Encryption In today’s security-first IT environment, protecting database traffic is no longer optional. SQL Server often holds business-critical information such as customer records, financial data, application transactions, reports, and internal operational data. If connections between applications and SQL Server are not encrypted
Building an Azure SQL Managed Instance Link to an on-premises SQL Server for a true DR design Here's a high-level breakdown of the activities and steps involved in building an Azure SQL Managed Instance Link to an on-premises SQL Server for a true DR design. Phase 1: Planning & Prerequisites 1. Validate version and licensing
Building an On-Premises Disaster Recovery Option for Azure SQL Managed Instance Many organisations are moving their SQL Server workloads to Azure SQL Managed Instance to gain the benefits of a fully managed cloud database platform. However, some industries still have compliance, regulatory, sovereignty, or internal risk requirements that demand a disaster recovery copy outside Azure,
How to Configure Azure Front Door and Integrate It with HAProxy (Complete Step-by-Step Guide) If you're hosting websites or applications behind an Azure Virtual Machine and using HAProxy as your reverse proxy/load balancer, adding Azure Front Door is one of the best upgrades you can make for performance, security, and global availability. In this guide,
Mastering SQL Server Transactional Replication: Creating, Testing, and Monitoring a Reliable Data Sync Environment In modern IT environments, businesses often need data to be available in multiple locations for reporting, disaster recovery, analytics, or application performance. One of the most proven technologies for near real-time data distribution in Microsoft SQL Server is Transactional Replic
🚀How to Identify and Troubleshoot Slow Queries in Oracle Database 19c Performance issues are one of the most common challenges faced by database administrators. When users report that “the system is slow”, the root cause is often inefficient SQL queries. In this guide, we’ll walk through a practical, step-by-step approach to identifying slow queries in
Git Essentials for Developers: Commands, Best Practices, and Real-World Workflow with GitLab Version control is at the heart of modern software development. Whether you’re working solo or in a distributed team, mastering Git is essential for maintaining code quality, collaboration, and traceability. In this guide, we’ll cover: 🧱 What is Git? Git is a distributed
Setting Up GitLab on Ubuntu with HAProxy and Using HTTPS for Development – Complete Guide In modern software engineering, having a centralized, secure, and scalable code repository is critical. This guide walks through a real-world implementation of a self-hosted GitLab platform deployed on an Ubuntu VM, integrated with HAProxy for SSL termination, and configured for
Complete Guide: Setting Up Ubuntu 22.04 for Docker-Based Application Deployment Running modern applications efficiently requires a solid, production-ready environment. In this guide, we walk through how to prepare an Ubuntu 22.04 LTS server for running containerized applications using Docker, along with essential tools like Node.js, npm, pnpm, and PostgreSQL. This setup is ideal for SaaS
Azure CLI Not Recognized in PowerShell? Here’s How to Fix It on Windows If you run this command in PowerShell: az –version and get this error: az : The term 'az' is not recognized as the name of a cmdlet, function, script file, or operable program. don’t panic. This usually means one of two things:
How to Install Docker Desktop on a Windows Computer — Plus How to Check Whether an Azure Windows 10 VM Supports It Docker Desktop is one of the fastest ways to get a modern container development environment running on Windows. On a physical Windows 10 or Windows 11 PC, the setup is usually straightforward. On
How to Find Which Application Is Using a Port on a Windows When you are troubleshooting a Node.js app, React frontend, backend API, Docker container, or any local development service on Windows, one common problem is discovering that a required port is already in use. If your application needs port 3002 and Windows says the
SQL Server 2025 vs SQL Server 2019: What’s New and Why It Matters A lot of businesses are still running SQL Server 2019 quite happily. It was a strong release: better performance, better recovery, better security, and a big push into data virtualization and big-data workloads. But SQL Server 2025 is a very different kind
How to Enable TDE on SQL Server 2019 Standard with Always On Availability Groups for Selected Databases Protecting sensitive business data at rest is now a core requirement for many organisations. For SQL Server environments running critical production workloads, Transparent Data Encryption (TDE) is one of the most effective built-in security features for encrypting database
How to Find the Last SQL for INACTIVE Sessions in Oracle 10g (Practical DBA Guide) When an Oracle database hits connection pressure (for example ORA-00020: maximum number of processes exceeded), DBAs usually see a sea of sessions — many of them INACTIVE. The next question is always: “What SQL were these sessions running?” In Oracle
New Microsoft 365 Domain Can Send Email but Can’t Receive? Here’s the Fix (Step-by-Step) You’ve just purchased a new domain (e.g., abc.com), set up a brand-new Microsoft 365 (Office 365) subscription, and created a mailbox like aa@abc.com. Outgoing email works perfectly — but incoming email never arrives. This is one of the most common “new
Secure Ways to RDP into an AWS EC2 Instance When You Only Have Switch-Role Console Access If you’ve been granted AWS Management Console access via “Switch Role” (common for external DBAs and support partners), you can usually see EC2 instances and Amazon RDS — but the next practical question is: How do I safely RDP
Integrating IntelliJ IDEA Community Edition + Codex (OpenAI) A practical, step-by-step guide (plugins, setup options, and a solid workflow) If you’re an IntelliJ IDEA (Community Edition) person but you want Codex-style “agentic” help — refactors, bug fixes, test generation, and codebase Q&A — you’ve got a good path now: Codex is available inside JetBrains IDEs
Integrating VS Code + Codex (OpenAI) A practical setup guide (extensions, install steps, and best-practice workflow) If you live in VS Code, Codex is one of the nicest ways to bring an “agentic” coding assistant into your daily workflow—so you can ask for changes, refactors, bug fixes, and explanations inside the editor, with Codex able
How to Change the Ownership of a CIFS Mount Point on Linux When working with network-mounted storage on Linux, especially Azure Files or SMB/CIFS shares, administrators often notice something confusing: even after running chown, the mounted folder still shows as root:root. This happens because CIFS mount points do not behave like normal local Linux filesystems
OpenSSL on Windows Made Simple: Create a PFX Certificate from PEM Files Introduction When you work with SSL/TLS certificates on Windows—especially for platforms like Azure Key Vault, IIS, Application Gateway, Load Balancers, or Kubernetes—you’ll often receive certificates in PEM format (for example: .pem, .crt, fullchain.pem). The challenge: many enterprise platforms require a PFX (PKCS#12) file
How to Set Up Secure Cross-Account AWS DBA Access Using IAM Roles (Step-by-Step) Managing databases in AWS often requires DBAs to access customer environments securely—without sharing passwords, long-lived keys, or granting excessive permissions. A common and recommended approach is to use AWS IAM roles with cross-account role assumption. This guide walks through a practical, secure
How to Enable and Verify SQL Auditing for Azure SQL Managed Instance If you’re running workloads on Azure SQL Managed Instance (SQL MI) and need to track who changed what data, when it happened, and from where, SQL Auditing is the right place to start. This guide walks through how to: Why SQL Auditing matters
How to Create Databases and Users in Azure Database for MySQL (Flexible Server) Managing users and databases in Azure Database for MySQL (Flexible Server) is similar to standard MySQL, but with one important difference: Azure is a managed database service, so some “superuser-style” permissions (especially global grants) are intentionally restricted for security and platform stability.
How to Mount Azure File Share on an Azure Linux VM (SMB/CIFS) — Step-by-Step Azure Files provides fully managed cloud file shares that you can mount on Linux just like a normal network filesystem. This is super handy for shared application configs, logs, backups, and cross-VM shared storage without managing an NFS/SMB server yourself. In
Renewing SSL Certificates on HAProxy Running on an Azure VM (Step-by-Step) If you’re running HAProxy on an Azure VM, sooner or later you’ll need to renew your SSL/TLS certificate. When that renewal is handled cleanly, users see nothing. When it’s handled poorly, you get outages, browser warnings, or failed health checks. This guide walks you
Fixing uuid-ossp on PostgreSQL 15 (RHEL 8): “extension is not available” If you’ve ever tried to enable UUID generation in PostgreSQL and hit this: …you’re not alone. This is one of those cases where PostgreSQL is telling the truth: the database is fine, but the server OS package that provides the extension files is missing.
How to Check Where PostgreSQL Stores Its Database Files (Step-by-Step) When you’re troubleshooting disk usage, planning backups, investigating performance issues, or validating a migration, one of the first questions you’ll ask is: “Where are my PostgreSQL database files actually stored?” PostgreSQL is very transparent about this—if you know where to look. In this guide, we’ll
The Practical Beginner’s Guide to Git Clone, branch, commit, push, merge — and deploy with Docker Git is the most popular version control system for tracking code changes, collaborating with others, and safely delivering features without breaking your main codebase. This guide walks you through a real-world Git workflow: ✅ Create or clone a repo✅
Fix “Key not valid for use in specified state” (WinError -2146893813) on Windows A practical guide for Azure CLI, MSAL token cache, and DPAPI decryption failures Summary If you see this error on Windows: Decryption failed: [WinError -2146893813] Key not valid for use in specified state …it usually means your app (often Azure CLI) is
Install WordPress on Ubuntu 24.04 With Free SSL (Let’s Encrypt) This guide shows how to install WordPress on Ubuntu 24.04 using Apache, PHP, and MySQL — then secure it with a free SSL certificate from Let's Encrypt. It also includes two common production needs: blocking search engines until launch and increasing WordPress upload size. What
How to Identify Active Transactions and Running SQL in SQL Server When a SQL Server database becomes slow, blocked, or starts showing signs of transaction log growth, one of the first things a DBA wants to know is: Which transaction is running, who started it, and what SQL is it executing? That is exactly what
Monitoring SQL Server Restore Progress with sys.dm_exec_requests When restoring a large database in SQL Server, one of the most common questions from administrators, project teams, and business users is: “How much longer will it take?” SQL Server does not always give clear progress feedback in the standard restore window, especially when you are managing restores
Overview If your Azure Portal shows a larger disk size (e.g., 128GB) but Linux reports smaller sizes in df -h or lsblk, the issue is almost always one of these: This guide covers: Symptoms You’ll See Example: Why df -h Doesn’t Show Your Disk df -h reports filesystems that are mounted (like /, /opt, /home).It
Changing a Linux server hostname sounds simple—and it is—but doing it properly matters. A hostname touches everything from SSH prompts, monitoring, logging, certificates, internal DNS, and even some application configs. In this guide, I’ll show you the safest and most common methods to change a Linux hostname without breaking anything. What is a hostname (and
When a production system “freezes” and users complain about timeouts, the usual culprit is blocking locks. This post is a practical playbook for Oracle DBAs to identify who’s blocking whom, what’s locked, and exactly which SQL is responsible—plus some prevention tips. All examples work on Oracle 19c+ (notes for RAC included). 1) Read the room:
You may see this error message in the Windows Event Viewer What the message means Why it happens What you can do (pick one) Sanity checks SQL Server angle (for a log volume) If you want, I can draft the one-liner Scheduled Task to run weekly -ReTrim on M: and keep the event log clean.
You hit: Your RMAN job can’t obtain the CF (control file) enqueue. Another RMAN session holds it, or a crashed one left it behind. Typical triggers Quick path to green 1) Find and kill the blocker Check active RMAN processes: Identify CF enqueue holders and waiters: End an orphaned blocker: or kill the OS process
Generative AI is no longer experimental—it’s powering real-world enterprise, research, and consumer use cases. Five models stand out in 2025: Cohere Command R, Google Gemini 2.5 Pro, Meta Llama 4 Maverick, OpenAI gpt-oss-120B, and xAI Grok 4. Below we compare their strengths, limitations, and practical applications. Cohere Command R OverviewA 32-billion-parameter text-only model with retrieval-aug
For decades, businesses have relied on applications that once solved critical problems and became the backbone of operations. These legacy applications were designed for their time—built to automate manual tasks, improve efficiency, and enable business growth. Many organisations still depend on them daily, even though the technology landscape has shifted dramatically. Why Organisations Still Use
Installing docker and Portainer on windows server on Azure VM This guide walks through the tested and verified process for installing Docker and Portainer on a Windows Server virtual machine hosted on Microsoft Azure. These instructions are intended for production-grade setups using Windows-native Docker. To install Docker on an Azure Windows VM (for production workloads),
1. Download IntelliJ IDEA Community Edition 2. Install IntelliJ IDEA Community Edition For Windows For macOS For Linux (Ubuntu/Debian) 3. Activate IntelliJ IDEA Community Edition The Community Edition is free and does not require activation.When you first open IntelliJ IDEA: 4. Set Up IntelliJ IDEA for First Use Configure the UI Install Plugins (Optional) 5.
The error in your PowerShell terminal indicates that script execution is disabled on your system due to security policies. This is a common issue related to PowerShell's Execution Policy settings. Fix: Enable Script Execution To resolve this, follow these steps: Step 1: Check the Current Execution Policy Step 2: Change the Execution Policy To allow
Save up to 50% of DBA cost with Onsys Remote Remote Database Support. In today’s fast-paced digital landscape, businesses rely on robust and well-maintained databases to drive operations, ensure data integrity, and support mission-critical applications. However, managing databases effectively requires expert DBA (Database Administrator) support, which can be costly for many organizations. This is
Supported by a robust sales force and tight cost controls, Pharm Ltd. experienced sustained double-digit growth over a number of years, only to find that their supply chain struggled to keep pace.
Supported by a robust sales force and tight cost controls, Pharm Ltd. experienced sustained double-digit growth over a number of years, only to find that their supply chain struggled to keep pace.